如何在C#中获取当前执行路径而非可执行文件所在路径?
获取执行程序时的当前工作目录
你当前的代码获取的都是程序自身所在的路径(c:\some\path),要获取执行程序时所在的工作目录(即你示例中的c:\here\here\here),可以使用以下两种方法:
- 方法1:
Directory.GetCurrentDirectory()
需要引用System.IO命名空间,返回进程当前的工作目录。 - 方法2:
Environment.CurrentDirectory
无需额外引用,同样返回当前工作目录,底层逻辑和Directory.GetCurrentDirectory()一致。
修改后的示例代码:
using System.IO; Console.WriteLine(Directory.GetCurrentDirectory()); Console.WriteLine(Environment.CurrentDirectory);
执行后,在c:\here\here\here目录下运行project.exe,这两行代码都会输出c:\here\here\here。
注意:如果程序运行过程中调用
Directory.SetCurrentDirectory()修改了工作目录,这两个方法会返回修改后的路径;若需要获取程序启动时的初始工作目录,这两个值在启动时的结果就是初始路径,除非被主动修改。
内容的提问来源于stack exchange,提问作者CESAR NICOLINI RIVERO
相关产品推荐
相关产品推荐

