C#應用程序本地目錄


有時,我們需要獲取應用程序所在目錄,以便實現某種功能(如上傳下載功能)。獲取目錄的方式多種多樣,也各有區別,在此歸納總結。

一、路徑獲取方法

1.AppDomain.CurrentDomain

// 獲取程序的基目錄。
System.AppDomain.CurrentDomain.BaseDirectory

// 獲取和設置包括該應用程序的目錄的名稱。
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase

 

 

2.System.Diagnostics.Process

// 獲取模塊的完整路徑,包含文件名
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName

3.System.Environment

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

4.System.IO.Directory

// 獲取應用程序的當前工作目錄,注意工作目錄是可以改變的,而不限定在程序所在目錄
System.IO.Directory.GetCurrentDirectory()

E:\Programming\CoreTest\TestApi

5.其他特殊方法

WinForm

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

System.Windows.Forms.Application.StartupPath

// 獲取啟動了應用程序的可執行文件的路徑及文件名
System.Windows.Forms.Application.ExecutablePath

AspNet

Hosting.HostingEnvironment

二、注意事項

  1.在不同系統中,對字符串的處理可能會不一樣,尤其是一些特殊字符,如"\"。所以拼接目錄時,不要用字符串相加的方式,而是用方法接口,因為一般底層幫我們做了相關兼容。

例如:

不要使用  AppDomain.CurrentDomain.BaseDirectory + "\\myFiles";

而是使用  System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "myFiles");

  2.根據發布部署方式和系統的不同,應用程序的具體目錄也會不同。如,不一定會存在bin目錄。所以,盡量不要自行拼接出已有的程序目錄來使用,而是基於程序目錄,自行創建目錄使用。

三、總結

 除了Directory方式,其他方法都是本應用程序域的路徑。所以在使用中,因該盡量避免用Directory方式,除非本身有必須使用工作目錄的需求


免責聲明!

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



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