ASP.NETまとめC#の7種類の現在のパスを取得する方法

2964 ワード

1. System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName-モジュールのフルパスを取得します.  2. System.Environment.CurrentDirectory-現在のディレクトリ(プロセスが開始したディレクトリ)の完全限定ディレクトリを取得および設定します.  3. System.IO.Directory.GetCurrentDirectory()-アプリケーションの現在の作業ディレクトリを取得します.これはプログラムが起動したディレクトリとは限らないでしょう.プログラムがC:wwwに置かれている可能性があります.この関数はC:Documents and SettingsZYBに戻る可能性があります.あるいはC:Program FilesAdobeに戻る可能性があります.時々何かに戻るとは限らないので、私にもわかりません.  4. System.AppDomain.CurrentDomain.BaseDirectory-プログラムのベースディレクトリを取得します.  5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase-アプリケーションを含むディレクトリの名前を取得および設定します.  6. System.Windows.Forms.Application.StartupPath:アプリケーションを起動した実行可能ファイルのパスを取得します.効果は2、5と同じです.ただ5で返される文字列の後ろに「」が1つ増えただけです.System.Windows.Forms.Application.ExecutablePath-アプリケーションを起動した実行可能ファイルのパスとファイル名を取得します.効果は1と同じです. 

//         。
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;

StringBuilder str=new StringBuilder();
str.AppendLine("System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName:" + path1);
str.AppendLine("System.Environment.CurrentDirectory:" + path2);
str.AppendLine("System.IO.Directory.GetCurrentDirectory():" + path3);
str.AppendLine("System.AppDomain.CurrentDomain.BaseDirectory:" + path4);
str.AppendLine("System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase:" + path5);
str.AppendLine("System.Windows.Forms.Application.StartupPath:" + path6);
str.AppendLine("System.Windows.Forms.Application.ExecutablePath:" + path7);
string allPath = str.ToString();

/*出力結果
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName:D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\XmlAndXsd.vshost.exe System.Environment.CurrentDirectory:D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release System.IO.Directory.GetCurrentDirectory():D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release System.AppDomain.CurrentDomain.BaseDirectory:D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase:D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\System.Windows.Forms.Application.StartupPath:D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release System.Windows.Forms.Application.ExecutablePath:D:\work\prj\VP-VPlatform\XmlAndXsd\bin\Release\XmlAndXsd.EXE    */