如何在C#中的相对路径中获取文件
如果我有一个名为app.exe的可执行文件,这是我在C#中编写的代码,如何使用相对路径从与app.exe相同的目录中加载的文件夹中获取文件?
这会在路径异常中引发非法字符:
string [ ] files = Directory.GetFiles ( "\\Archive\\*.zip" );
在C#中如何做到这一点?
回答:
为了确保您具有应用程序的路径(而不仅仅是当前目录),请使用以下命令:
http://msdn.microsoft.com/zh-
CN/library/system.diagnostics.process.getcurrentprocess.aspx
现在,您有了一个Process
代表正在运行的进程的对象。
然后使用Process.MainModule.FileName
:
http://msdn.microsoft.com/zh-
cn/library/system.diagnostics.processmodule.filename.aspx
最后,使用Path.GetDirectoryName
来获取包含.exe的文件夹:
http://msdn.microsoft.com/zh-
CN/library/system.io.path.getdirectoryname.aspx
所以这就是你想要的:
string folder = Path.GetDirectoryName(Process.GetCurrentProcess().MainModule.FileName) + @"\Archive\";string filter = "*.zip";
string[] files = Directory.GetFiles(folder, filter);
(请注意,"\Archive\"
现在您的问题是@"\Archive\"
:您需要使用@,以便不会将\
反斜杠解释为转义序列的开始)
希望有帮助!
以上是 如何在C#中的相对路径中获取文件 的全部内容, 来源链接: utcz.com/qa/407556.html