关于c#:78c-各种路径AppDomainCurrentDomainBaseDirectory等

控制台程序:

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理