是否存在与平台无关且与文件系统无关的方法来获取使用C/C++运行程序的目录的完整路径?不要与当前的工作目录混淆.(请不要建议使用库,除非它们是clib或STL等标准库.)
(如果没有平台/文件系统无关的方法,也欢迎在Windows和Linux中使用特定文件系统的建议.)
我正在尝试加载位于项目文件夹中的XML文件(使用Visual Studio 2012).
结构是这样的:
solutionRoot\
- service\
-- ServiceClass.cs
-- AppValues.xml <-- this is the file I want to load
Run Code Online (Sandbox Code Playgroud)
在我的ServiceClass中,我尝试使用以下代码从XML文件中读取:
public String GetXmlElement(String elementName)
{
[....]
XDocument document = XDocument.Load(@"\service\AppValues.xml");
[...]
}
Run Code Online (Sandbox Code Playgroud)
当我尝试测试代码时,会出现以下错误:
Test method PandaTests.ServiceTest.ReadXmlCanReadXml threw exception:
System.IO.DirectoryNotFoundException: Could not find a part of the path
'C:\Users\MyName\Documents\GitHub\project\Project22\PandaTests\bin\Debug\service\AppValues.xml'.
Run Code Online (Sandbox Code Playgroud)
这显然是我的路径的问题,但我无法弄清楚如何使相对路径正确.我在这里查看了有关堆栈溢出的其他问题,但其中许多似乎过度参与.是否有一种简单的方法来加载XML文件而不提供绝对路径?