1 2 3 4 5 6 7 8 9 10 |
string str1 = Process.GetCurrentProcess().MainModule.FileName;//可获得当前执行的exe的文件名。 string str2 = Environment.CurrentDirectory;//获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。(备注:按照定义,如果该进程在本地或网络驱动器的根目录中启动,则此属性的值为驱动器名称后跟一个尾部反斜杠(如“C:\”)。如果该进程在子目录中启动,则此属性的值为不带尾部反斜杠的驱动器和子目录路径[如“C:\mySubDirectory”])。 string str3 = Directory.GetCurrentDirectory(); //获取应用程序的当前工作目录。 string str4 = AppDomain.CurrentDomain.BaseDirectory;//获取基目录,它由程序集冲突解决程序用来探测程序集。 string str5 = AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//获取或设置包含该应用程序的目录的名称。 Console.WriteLine("str1:" + str1); Console.WriteLine("str2:" + str2); Console.WriteLine("str3:" + str3); Console.WriteLine("str4:" + str4); Console.WriteLine("str5:" + str5); |
通过双击exe直接运行结果如下:
1 2 3 4 5 |
str1:f:\prj\test\test.exe str2:f:\prj\test str3:f:\prj\test str4:f:\prj\test\ str5:f:\prj\test\ |
使用MVC项目中的cmd命令模块打开,运行结果如下:
1 2 3 4 5 |
str1:f:\prj\test\test.exe str2:c:\windows\system32\inetsrv str3:c:\windows\system32\inetsrv str4:f:\prj\test\ str5:f:\prj\test\ |
由上可以看出,第2、3种方法实际获得的是启动进程所在路径,使用时候要特别注意。