C#獲取文件路徑或者文件夾路徑的方法


一、獲取當前文件路徑

1.System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

獲取模塊的完整路徑,包括文件名。獲取得到的是Module的文件名,如果在VS2008的調試環境中,獲取的是 [程序名].vshost.exe的完整文件名。

例如:System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.vshost.exe

(本例包括以下各個示例均為在本人電腦下操作得到,其中C:\\Users\\zhzhx\\Documents為“我的文檔”文件夾)

2.System.Environment.CurrentDirectory

獲取和設置當前目錄(該進程從中啟動的目錄)的完全限定目錄。

例如:System.Environment.CurrentDirectory =  C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug

3.System.IO.Directory.GetCurrentDirectory()

獲取應用程序的當前工作目錄。

例如:System.IO.Directory.GetCurrentDirectory() =  C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug

 

其中,2和3這兩個方法獲得的路徑是一樣的,獲得的是當前路徑,這個路徑不一定是程序所在的路徑。任何會改變當前路徑的方法都會改變它,例如:OpenFileDialog每換一次目錄就會改變它。因此,用這兩個方法獲取程序路徑並不可靠。

 

4. System.AppDomain.CurrentDomain.BaseDirectory

獲取當前 Thread 的當前應用程序域的基目錄,它由程序集沖突解決程序用來探測程序集。

例如:System.AppDomain.CurrentDomain.BaseDirectory = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\

5. System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

獲取和設置包括該應用程序的目錄的名稱。

例如:System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\

 

其中,4和5這兩個方法是可靠的獲取程序路徑的方法。返回的路徑最末以"\"結尾。可以方便的在后面加入任何Path。當然就算沒有也可以用Path.Combine來合並路徑以獲得想要的路徑。

 

6. System.Windows.Forms.Application.StartupPath

獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱。

例如:System.Windows.Forms.Application.StartupPath = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug

這個方法也是可靠的獲取程序路徑的方法。不過返回的路徑最末並沒有"\"結尾。另外因為是Forms命名空間的。因此如果使用WPF還是不用的好。

7.System.Windows.Forms.Application.ExecutablePath

獲取啟動了應用程序的可執行文件的路徑及文件名。

例如:System.Windows.Forms.Application.ExecutablePath = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

這個方法獲取的是執行程序的完整文件名。是最可靠的方式,只需要去掉程序文件名就可以獲得路徑。

8.System.Threading.Thread.GetDomain().BaseDirectory

獲取當前應用程序所在目錄的路徑,最后包含“\”。

System.Threading.Thread.GetDomain().BaseDirectory = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\

9.this.GetType().Assembly.Location

獲取當前進程的完整路徑,包含文件名(進程名)

this.GetType().Assembly.Location = C:\Users\zhzhx\Documents\Visual Studio 2010\Projects\WindowsFormsApplication1\WindowsFormsApplication1\bin\Debug\WindowsFormsApplication1.exe

 

二、獲取系統特殊文件夾路徑

System.Environment.GetFolderPath(SpecialFolder) 

例如:

System.Environment.GetFolderPath(Environment.SpecialFolder.Desktop) = C:\Users\zhzhx\Desktop //邏輯桌面,而不是物理文件系統位置。

System.Environment.GetFolderPath(Environment.SpecialFolder.Programs) = C:\Users\zhzhx\AppData\Roaming\Microsoft\Windows\Start Menu\Programs //包含用戶程序組的目錄。

System.Environment.GetFolderPath(Environment.SpecialFolder.Personal) = C:\Users\zhzhx\Documents //用作文檔的公共儲存庫的目錄。

System.Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) = C:\Users\zhzhx\Documents // “我的文檔”文件夾。

以下不再一一敘述,同上面所示,只是寫出各個Environment.SpecialFolder后綴名所對應的文件夾

Favorites,//用作用戶收藏夾項的公共儲存庫的目錄。

Startup,//對應於用戶的“啟動”程序組的目錄。

Favorites,//用作用戶收藏夾項的公共儲存庫的目錄。             

Startup,//對應於用戶的“啟動”程序組的目錄。

Recent, //包含用戶最近使用過的文檔的目錄。

SendTo ,//包含“發送”菜單項的目錄。

StartMenu ,//包含“開始”菜單項的目錄。

MyMusic ,//“我的音樂”文件夾。

MyVideos , //文件系統目錄,充當屬於某個用戶的視頻的存儲庫。

DesktopDirectory , //用於物理上存儲桌面上的文件對象的目錄。

MyComputer ,//“我的電腦”文件夾。

NetworkShortcuts ,//文件系統目錄,包含“網上鄰居”虛擬文件夾中可能存在的鏈接對象。

Fonts ,//包含字體的虛擬文件夾。

Templates ,//用作文檔模板的公共儲存庫的目錄。

CommonStartMenu , //文件系統目錄,包含在所有用戶的“開始”菜單上都出現的程序和文件夾。此特殊文件夾僅對 Windows NT 系統有效。

CommonPrograms , //     存放多個應用程序共享的組件的文件夾。此特殊文件夾僅對 Windows NT、Windows 2000 和 Windows XP 系統有效。

CommonStartup ,//文件系統目錄,包含在所有用戶的“啟動”文件夾中都出現的程序。此特殊文件夾僅對 Windows NT 系統有效。

CommonDesktopDirectory , //文件系統目錄,包含在所有用戶桌面上出現的文件和文件夾。此特殊文件夾僅對 Windows NT 系統有效。

ApplicationData ,// 目錄,它用作當前漫游用戶的應用程序特定數據的公共儲存庫。

PrinterShortcuts ,//文件系統目錄,包含“打印機”虛擬文件夾中可能存在的鏈接對象。

LocalApplicationData ,// 目錄,它用作當前非漫游用戶使用的應用程序特定數據的公共儲存庫。

InternetCache ,//用作 Internet 臨時文件的公共儲存庫的目錄。

Cookies ,//用作 Internet Cookie 的公共儲存庫的目錄。

History ,//用作 Internet 歷史記錄項的公共儲存庫的目錄。

CommonApplicationData ,//目錄,它用作所有用戶使用的應用程序特定數據的公共儲存庫。

Windows ,//Windows 目錄或 SYSROOT。它與 %windir% 或 %SYSTEMROOT% 環境變量相對應。

System ,//“System”目錄。

ProgramFiles ,// “Program files”目錄。

MyPictures ,//“我的圖片”文件夾。

UserProfile ,//     用戶的配置文件文件夾。應用程序不應在此級別上創建文件或文件夾;它們應將其數據放在 System.Environment.SpecialFolder.ApplicationData所引用的位置之下。

SystemX86 ,//Windows“System”文件夾。

ProgramFilesX86 ,//“Program Files”文件夾。

CommonProgramFiles ,//用於應用程序間共享的組件的目錄。

CommonProgramFilesX86 ,// “Program Files”文件夾。

CommonTemplates ,//文件系統目錄,包含所有用戶都可以使用的模板。此特殊文件夾僅對 Windows NT 系統有效。

CommonDocuments ,//文件系統目錄,包含所有用戶共有的文檔。此特殊文件夾僅對裝有 Shfolder.dll 的 Windows NT 系統、Windows 95 和 Windows98 系統有效。

CommonAdminTools ,//文件系統目錄,包含計算機所有用戶的管理工具。

AdminTools ,//文件系統目錄,用於存儲各個用戶的管理工具。Microsoft Management Console (MMC) 會將自定義的控制台保存在此目錄中,並且此目錄將隨用戶一起漫游。

CommonMusic , //文件系統目錄,充當所有用戶共有的音樂文件的存儲庫。

CommonPictures ,//文件系統目錄,充當所有用戶共有的圖像文件的存儲庫。

CommonVideos ,//文件系統目錄,充當所有用戶共有的視頻文件的存儲庫。

Resources , //文件系統目錄,包含資源數據。

LocalizedResources ,//文件系統目錄,包含本地化資源數據。

CommonOemLinks ,//為了實現向后兼容,Windows Vista 中可以識別此值,但該特殊文件夾本身已不再使用。

CDBurning ,//文件系統目錄,充當等待寫入 CD 的文件的臨時區域。

            

三、操作環境變量

利用System.Environment.GetEnvironmentVariable()方法可以很方便地取得系統環境變量。

例如:

System.Environment.GetEnvironmentVariable("windir") = C:\Windows

System.Environment.GetEnvironmentVariable("INCLUDE") = C:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\include\

(本例在本人電腦上未能實現,路徑為網上別人的博客上的路徑)

System.Environment.GetEnvironmentVariable("TMP") = C:\Users\zhzhx\AppData\Local\Temp

System.Environment.GetEnvironmentVariable("TEMP") = C:\Users\zhzhx\AppData\Local\Temp

System.Environment.GetEnvironmentVariable("Path") = C:\Program Files\AMD APP\bin\x86;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;

 

四、 獲Web應用程序的根目錄方法

1HttpRuntime.AppDomainAppPath.ToString()

獲取承載在當前應用程序域中的應用程序目錄的物理驅動器路徑。用於App_Data中獲取。

2.Server.MapPath("") 或者 Server.MapPath("~/")

返回與Web服務器上的指定的虛擬路徑相對的物理文件路徑。

3.Request.ApplicationPath

獲取服務器上ASP.NET應用程序的虛擬應用程序根目錄。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM