获取目录或执行文件的路径

//1.获取模块的完整路径。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;

//2.获取和设置当前目录(该进程从中启动的目录)的完全限定目录
System.Environment.CurrentDirectory;

//3.获取应用程序的当前工作目录
System.IO.Directory.GetCurrentDirectory();

//4.获取程序的基目录
System.AppDomain.CurrentDomain.BaseDirectory;

//5.获取和设置包括该应用程序的目录的名称
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;

//6.获取启动了应用程序的可执行文件的路径
System.Windows.Forms.Application.StartupPath;

//7.获取启动了应用程序的可执行文件的路径及文件名
System.Windows.Forms.Application.ExecutablePath;

以下是当我使用task scheduler的时候的路径

Process.GetCurrentProcess().MainModule.FileName:C:\Program Files (x86)\Client\client.exe
Environment.CurrentDirectory:C:\Windows\system32
Directory.GetCurrentDirectory:C:\Windows\system32
base directory:C:\Program Files (x86)\Client
AppDomain.CurrentDomain.SetupInformation.ApplicationBase:C:\Program Files (x86)\Client
System.Windows.Forms.Application.StartupPath:C:\Program Files (x86)\Client
System.Windows.Forms.Application.ExecutablePath:C:\Program Files (x86)\Client\client.exe

解决办法:
System.IO.Directory.SetCurrentDirectory(AppDomain.CurrentDomain.BaseDirectory);

你可能感兴趣的:(获取目录或执行文件的路径)