路径

 可执行文件exe的文件名

   包含绝对路径:

   1 string path = Process.GetCurrentProcess().MainModule.FileName; 

  结果如下,正是文件的路径和全名:

E:计算机C#CSharpProject程序目录路径相关程序目录路径相关inDebug程序目录路径相关.exe

  但是在调试模式下,得到的路径却不相同,如下:

E:计算机C#CSharpProject程序目录路径相关程序目录路径相关inDebug程序目录路径相关.svhost.exe

 当前目录

   当前目录,也就是程序执行的可执行文件的目录吧。

 1 string path = Environment.CurrentDirectory; 

  调试状态和非调试状态都是一样的结果:

E:计算机C#CSharpProject程序目录路径相关程序目录路径相关inDebug

  在一次打开文件的操作中,发现了一些不同处,过程如下:

  1、在F:KuGou目录下用OpenFileDialog打开一个文件为:F:KuGou张韵涵 - 真爱冒险.mp3,显示出来如图:

文件的全名称(含路径)

  2、获取当前目录如下:F:KuGou

当前目录

  结果:当前目录发生了变化,而不是可执行文件所在的目录

 得到当前工作目录

    1 path = Directory.GetCurrentDirectory(); 

调试状态和非调试状态都是一样的:

E:计算机C#CSharpProject程序目录路径相关程序目录路径相关inDebug

  A.exe 在执行时启动了B.exe,那么在B.exe中执行此代码的话,得到的是A.exe程序的路径,也就是程序的"父程序"的路径,也就是工作路径。

在打开文件后,和当前目录的得到结果一样,都变成了文件所在的目录。

 得到基目录

  1 path = AppDomain.CurrentDomain.BaseDirectory; 

调试状态和非调试状态结果相同:  和前两种相比,有最后的反斜杠 ""

 E:计算机C#CSharpProject程序目录路径相关程序目录路径相关inDebug

在打开文件后,基目录不变。

 获取启动了应用程序的可执行文件的路径,不包含文件名

  本次测试只在WinForm程序中,控制台程序不可以使用。

 1 textBox1.Text = Application.StartupPath; 

E:计算机C#CSharpProjectWinForm程序路径WinForm程序路径inDebug

  获取启动了应用程序的可执行文件的路径,包含文件名

   上面的区别是,此处包含可执行文件的名字。

 1 textBox1.Text = Application.ExecutablePath; 

E:计算机C#CSharpProjectWinForm程序路径WinForm程序路径inDebugWinForm程序路径.EXE

 /获取或设置包含该应用程序的目录的名称

1 textBox1.Text = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

 

E:计算机C#CSharpProjectWinForm程序路径WinForm程序路径inDebug

原文地址:https://www.cnblogs.com/ddx-deng/p/3793441.html