2017-08-16 132 views
3

我使用Visual Studio 2015年無法打開文件[TESTXML.xml]

目前我正在爲log4cxx的包裝,以使任何其他日誌庫,以後可以在線下使用。

我正在使用DOMConfigurator來解析XML配置文件。基本上我的功能包裝DOMConfigurator::configure()

我將它傳遞一個字符串,這是我的配置文件的名稱,在這種情況下,「TESTXML.xml」,然而,我收到我的控制檯上的信息是:

log4cxx:莫非未打開文件[TESTXML.xml]。

我也試圖傳遞一個字符串變量,但沒有成功。

爲什麼我無法打開文件?我曾在「源文件」加入我的文件,並修改的屬性:

  • 內容:是
  • 排除從生成:沒有

也許,這MSVS2015設置我忘記配置?

+0

該文件是否放置在您的進程工作目錄中?你有沒有嘗試一個完整的路徑名? – user0042

+0

我嘗試了一個完整的路徑名,它導致了相同的錯誤。 – Doug

+2

您是否正確地使用完整路徑名轉義路徑分隔符?你的例子是不夠的。可以肯定的是,您的進程不會默認運行在放置源文件的同一目錄(工作目錄)中。請在您的問題中提供[MCVE]。 – user0042

回答

1

也許有一個MSVS2015的設置我忘了配置?

不,它沒有與該文件的配置(這應該從構建BTW除外)的事情。

根據您的問題中提供的信息,打開配置XML文件失敗的最可能原因是它不在您的進程啓動的同一目錄中。因爲它是由缺省(即$(ProjectDir)/<target>/Debug$(ProjectDir)/<target>/Release)創建

Visual Studio將運行在相同的目錄中的可執行。

您可以修改項目屬性調試設置中的進程工作目錄,或打開cmd窗口,更改爲所需的工作目錄並手動啓動可執行文件。

另一種方法是設置配置文件的完整路徑文件名(例如"c:\user\xyz\MySolution\MyProject\TESTXML.xml")。請記住,對於C++字符串文字,除非使用原始字符串文字,否則您需要轉義反斜槓字符(\ ==>\\)。