78-c# 各种路径AppDomain.CurrentDomain.BaseDirectory等

控制台程序:

static void Main(string[] args)
        {
            // 获取程序的基目录。
            string p1 = System.AppDomain.CurrentDomain.BaseDirectory;
            Console.WriteLine("p1=" + p1);
            // 获取模块的完整路径,包含文件名
            string p2 = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName;
            Console.WriteLine("p2=" + p2);

            // 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
            string p3 = System.Environment.CurrentDirectory;
            Console.WriteLine("p3=" + p3);

            // 获取应用程序的当前工作目录,注意工作目录是可以改变的,而不限定在程序所在目录。
            string p4 = System.IO.Directory.GetCurrentDirectory();
            Console.WriteLine("p4=" + p4);

            // 获取和设置包括该应用程序的目录的名称。
            string p5 = System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
            Console.WriteLine("p5=" + p5);

            // 获取启动了应用程序的可执行文件的路径。
            /*string p6 = System.Windows.Forms.Application.StartupPath;
            Console.WriteLine("p6=" + p6);

            // 获取启动了应用程序的可执行文件的路径及文件名
            string p7 = System.Windows.Forms.Application.ExecutablePath;
            Console.WriteLine("p7=" + p7);*/
            Console.ReadLine();


        }

结果为:

p1=D:\csharp\ConsoleApp5\bin\Debug\
p2=D:\csharp\ConsoleApp5\bin\Debug\ConsoleApp5.exe
p3=D:\csharp\ConsoleApp5\bin\Debug
p4=D:\csharp\ConsoleApp5\bin\Debug
p5=D:\csharp\ConsoleApp5\bin\Debug\

窗体控制程序:
p6、p7注释去掉:
结果为:

p1=D:\csharp\WinMyTest1\bin\Debug\
p2=D:\csharp\WinMyTest1\bin\Debug\WinMyTest1.exe
p3=D:\csharp\WinMyTest1\bin\Debug
p4=D:\csharp\WinMyTest1\bin\Debug
p5=D:\csharp\WinMyTest1\bin\Debug\
p6=D:\csharp\WinMyTest1\bin\Debug
p7=D:\csharp\WinMyTest1\bin\Debug\WinMyTest1.exe

额外说明:
安装为服务时: System.Environment.CurrentDirectory,这个取的windows/system32的路径。
可换为这个: AppDomain.CurrentDomain.BaseDirectory

你可能感兴趣的:(c#)