无法打开文件[TESTXML.xml]。

3

我正在使用Visual Studio 2015。

目前我正在为log4cxx编写一个包装器,以便稍后可以使用任何其他日志记录库。

我正在使用DOMConfigurator解析XML配置文件。基本上,我的函数包装了DOMConfigurator::configure()

我传递给它一个字面字符串,这是我的配置文件的名称,在这种情况下是"TESTXML.xml",但是,我在控制台上收到以下消息:

log4cxx: Could not open file [TESTXML.xml].

我也尝试传递一个字符串变量,但无济于事。

为什么我不能打开这个文件?我已经将我的文件添加到“源文件”中,并修改了属性:

  • Content:是
  • Excluded From Build:否

也许我忘记配置MSVS2015中的某些设置了吗?


该文件是否放置在您的进程工作目录中?您尝试过完整路径名吗? - user0042
我已经尝试了完整的路径名,但结果仍然是相同的错误。 - Doug
2
你是否正确地使用完整路径名转义了路径分隔符?你的示例不足以说明问题。可以确定的是,你的进程默认情况下不会在源代码所在的同一目录(工作目录)中运行。请在你的问题中提供一个最小可复现示例 [MCVE]。 - user0042
1
你说得对。我在工作目录中没有这个文件!谢谢! - Doug
1个回答

1

也许我忘记配置MSVS2015中的某个设置了吗?

不,这与文件的配置无关(顺便说一下,应该将其从构建中排除)。

根据您问题中提供的信息,打开配置XML文件失败最有可能的原因是它没有位于与您的进程启动位置相同的目录中。

默认情况下,Visual Studio将在与可执行文件创建时相同的目录中运行它(即$(ProjectDir)/<target>/Debug$(ProjectDir)/<target>/Release)。

您可以在项目属性调试设置中修改进程工作目录,或打开一个cmd窗口,更改到所需的工作目录并手动启动可执行文件。

另一种选择是为配置文件设置完整的路径文件名(例如:"c:\user\xyz\MySolution\MyProject\TESTXML.xml")。请记住,对于C ++字符串文字,您需要转义反斜杠字符(\ ==>\\),除非您正在使用原始字符串文字。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接