目录
一、代码
推荐使用第3种
internal static class Program
{
static void Main()
{
//获取模块的完整路径。
string path1 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
//获取和设置当前目录(该进程从中启动的目录)的完全限定目录
string path2 = System.Environment.CurrentDirectory;
//获取应用程序的当前工作目录
string path3 = System.IO.Directory.GetCurrentDirectory();
//获取程序的基目录
string path4 = System.AppDomain.CurrentDomain.BaseDirectory;
//获取和设置包括该应用程序的目录的名称
string path5 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//获取启动了应用程序的可执行文件的路径
string path6 = System.Windows.Forms.Application.StartupPath;
//获取启动了应用程序的可执行文件的路径及文件名
string path7 = System.Windows.Forms.Application.ExecutablePath;
Console.WriteLine($"--path1--{path1}");
//结果显示:--path1--C:\Users\Rush\Desktop\C#\获取当前路径\bin\Debug\获取当前路径.exe
Console.WriteLine($"--path2--{path2}");
//结果显示:--path2--C:\Users\Rush\Desktop\C#\获取当前路径\bin\Debug
Console.WriteLine($"--path3--{path3}");
//结果显示:--path3--C: \Users\Rush\Desktop\C#\获取当前路径\bin\Debug
Console.WriteLine($"--path4--{path4}");
//结果显示:--path4--C: \Users\Rush\Desktop\C#\获取当前路径\bin\Debug\
Console.WriteLine($"--path5--{path5}");
//结果显示:--path5--C:\Users\Rush\Desktop\C#\获取当前路径\bin\Debug\
Console.WriteLine($"--path6--{path6}");
//结果显示:--path6--C: \Users\Rush\Desktop\C#\获取当前路径\bin\Debug
Console.WriteLine($"--path7--{path7}");
//结果显示:--path7--C:\Users\Rush\Desktop\C#/获取当前路径/bin/Debug/获取当前路径.exe
string resultString = Regex.Match(path3, @".*(?=bin\\Debug)").Value;
Console.WriteLine(resultString);
//结果显示:C: \Users\Rush\Desktop\C#\获取当前路径\
}
}
二、路径区别
System.IO.Directory.GetCurrentDirectory()方法-- - 随着OpenFileDialog、SaveFileDialog等对象所确定的目录而改变
System.Windows.Forms.Application.StartupPath()和
System.AppDomain.CurrentDomain.BaseDirectory() 值等于应用程序启动的根目录
三、参考文献
http://t.csdn.cn/77fOuhttp://t.csdn.cn/77fOu
如有错误,烦请批评指正