可执行文件exe的文件名
包含绝对路径:
1 string path = Process.GetCurrentProcess().MainModule.FileName;
结果如下,正是文件的路径和全名:
E:\计算机\C#\CSharpProject\程序目录路径相关\程序目录路径相关\bin\Debug\程序目录路径相关.exe
但是在调试模式下,得到的路径却不相同,如下:
E:\计算机\C#\CSharpProject\程序目录路径相关\程序目录路径相关\bin\Debug\程序目录路径相关.svhost.exe
当前目录
当前目录,也就是程序执行的可执行文件的目录吧。
1 string path = Environment.CurrentDirectory;
调试状态和非调试状态都是一样的结果:
E:\计算机\C#\CSharpProject\程序目录路径相关\程序目录路径相关\bin\Debug
在一次打开文件的操作中,发现了一些不同处,过程如下:
1、在F:\KuGou\目录下用OpenFileDialog打开一个文件为:F:\KuGou\张韵涵 - 真爱冒险.mp3,显示出来如图:
2、获取当前目录如下:F:\KuGou
结果:当前目录发生了变化,而不是可执行文件所在的目录
得到当前工作目录
1 path = Directory.GetCurrentDirectory();
调试状态和非调试状态都是一样的:
E:\计算机\C#\CSharpProject\程序目录路径相关\程序目录路径相关\bin\Debug
A.exe 在执行时启动了B.exe,那么在B.exe中执行此代码的话,得到的是A.exe程序的路径,也就是程序的"父程序"的路径,也就是工作路径。
在打开文件后,和当前目录的得到结果一样,都变成了文件所在的目录。
得到基目录
1 path = AppDomain.CurrentDomain.BaseDirectory;
调试状态和非调试状态结果相同: 和前两种相比,有最后的反斜杠 "\"
E:\计算机\C#\CSharpProject\程序目录路径相关\程序目录路径相关\bin\Debug\
在打开文件后,基目录不变。
获取启动了应用程序的可执行文件的路径,不包含文件名
本次测试只在WinForm程序中,控制台程序不可以使用。
1 textBox1.Text = Application.StartupPath;
E:\计算机\C#\CSharpProject\WinForm程序路径\WinForm程序路径\bin\Debug
获取启动了应用程序的可执行文件的路径,包含文件名
上面的区别是,此处包含可执行文件的名字。
1 textBox1.Text = Application.ExecutablePath;
E:\计算机\C#\CSharpProject\WinForm程序路径\WinForm程序路径\bin\Debug\WinForm程序路径.EXE
/获取或设置包含该应用程序的目录的名称
1 textBox1.Text = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
E:\计算机\C#\CSharpProject\WinForm程序路径\WinForm程序路径\bin\Debug\