如何在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

回到顶部