我的项目文件夹外部有一个XML文件,我想从我的代码中访问它,以便在我将路径相对于项目目录的任何机器上执行代码。
让我们说我的当前目录位于文件夹A中,我要访问的文件位于A旁边的文件夹B中。
答案 0 :(得分:4)
如果XML文件始终在您的应用程序文件夹中,您可以使用。
工作路径可能不一定是可执行文件所在的位置。确保您可以使用以下MSDN。
中的代码string path;
path = System.IO.Path.GetDirectoryName(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase );
否则,如果它是Microsoft的特殊文件夹的一部分,例如.e.g MyDocuments,您可以使用。
Environment.SpecialFolder.MyDocuments
你可以这样使用它。
Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments),
"myfile.xml")
输出将是当前用户My Documents文件夹中myfile.xml的路径。就我而言,它会给我C:\Users\eandersson\Documents\myfile.xml
。
Path.Combine在这里非常有用,因为它允许我们将多个磁盘路径合并为一个。
修改:评论请求的其他信息。
我认为最好的方法是使用Directory.GetParent。
Directory.GetParent(Environment.CurrentDirectory).FullName
做这样的事情。
Path.Combine(Directory.GetParent(Environment.CurrentDirectory).FullName, "PathB", "myfile.xml")
这将在与项目文件夹相同的位置查找PathB。
C:\MyProjects\PathA\MyExecutable.exe
C:\MyProjects\PathB\myfile.xml
假设您从该位置开始运行MyExecutable.exe
。上面的代码应该自动返回PathB中的第二个位置,文件为myfile.xml
。