2019独角兽企业重金招聘Python工程师标准>>>
// 获取当前进程的完整路径,包含文件名(进程名)
Console.WriteLine(GetType().Assembly.Location + "\tGetType().Assembly.Location");
// 获取新的 Process 组件并将其与当前活动的进程关联的主模块的完整路径,包含文件名(进程名)。
Console.WriteLine(System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName + "\tSystem.Diagnostics.Process.GetCurrentProcess().MainModule.FileName");
// 获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集。
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory + "\t\tAppDomain.CurrentDomain.BaseDirectory");
// 获取和设置包含该应用程序的目录的名称。(推荐)
Console.WriteLine(AppDomain.CurrentDomain.SetupInformation.ApplicationBase + "\t\tAppDomain.CurrentDomain.SetupInformation.ApplicationBase");
// 获取和设置当前目录(即该进程从中启动的目录)的完全限定路径。受OpenFileDialog等影响而改变。
Console.WriteLine(Environment.CurrentDirectory + "\t\tEnvironment.CurrentDirectory");
// 获取启动了应用程序的可执行文件的路径,不包括可执行文件的名称。
Console.WriteLine(System.Windows.Forms.Application.StartupPath + "\t\tSystem.Windows.Forms.Application.StartupPath");
// 获取应用程序的当前工作目录(不可靠)。
Console.WriteLine(System.IO.Directory.GetCurrentDirectory() + "\t\tSystem.IO.Directory.GetCurrentDirectory()"); // exe所在目录,不可靠
参考
- C#获取当前程序运行路径的方法集合 Application.StartupPath和System.Environment.CurrentDirectory的区别 - 小豆子吃松子 - 博客园