您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)怎么在asp.net中獲取項目的根目錄,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。
1、取得控制臺應(yīng)用程序的根目錄方法
方法1、Environment.CurrentDirectory 取得或設(shè)置當(dāng)前工作目錄的完整限定路徑
方法2、AppDomain.CurrentDomain.BaseDirectory 獲取基目錄,它由程序集沖突解決程序用來探測程序集
2、取得Web應(yīng)用程序的根目錄方法
方法1、HttpRuntime.AppDomainAppPath.ToString();//獲取承載在當(dāng)前應(yīng)用程序域中的應(yīng)用程序的應(yīng)用程序目錄的物理驅(qū)動器路徑。用于App_Data中獲取
方法2、Server.MapPath("") 或者 Server.MapPath("~/");//返回與Web服務(wù)器上的指定的虛擬路徑相對的物理文件路徑
方法3、Request.ApplicationPath;//獲取服務(wù)器上ASP.NET應(yīng)用程序的虛擬應(yīng)用程序根目錄
3、取得WinForm應(yīng)用程序的根目錄方法
① Environment.CurrentDirectory.ToString();//獲取或設(shè)置當(dāng)前工作目錄的完全限定路徑
② Application.StartupPath.ToString();//獲取啟動了應(yīng)用程序的可執(zhí)行文件的路徑,不包括可執(zhí)行文件的名稱
③ Directory.GetCurrentDirectory();//獲取應(yīng)用程序的當(dāng)前工作目錄
④ AppDomain.CurrentDomain.BaseDirectory;//獲取基目錄,它由程序集沖突解決程序用來探測程序集
⑤ AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//獲取或設(shè)置包含該應(yīng)用程序的目錄的名稱
其中:以下兩個方法可以獲取執(zhí)行文件名稱
1、Process.GetCurrentProcess().MainModule.FileName;//可獲得當(dāng)前執(zhí)行的exe的文件名。
2、Application.ExecutablePath;//獲取啟動了應(yīng)用程序的可執(zhí)行文件的路徑,包括可執(zhí)行文件的名稱
相信很多用asp.net+Access做網(wǎng)站的朋友經(jīng)常都會有這樣一個需求:就是想在數(shù)據(jù)庫訪問層類庫中獲取Access數(shù)據(jù)庫的物理路徑,然后再拼接數(shù)據(jù)庫連接字符串進(jìn)行數(shù)據(jù)庫相關(guān)的操作.在網(wǎng)站UI層我們可以有很多種方法獲取一個網(wǎng)站的物理路徑,如:
1. Request.PhysicalApplicationPath
2. Request.MapPath("~/"),但是在數(shù)據(jù)庫訪問層用這些方法就不行
using System.Reflection; using System.IO; //使用前別忘了引用這兩個命名空間 /// <summary> /// 獲取Access數(shù)據(jù)庫的物理路徑 /// </summary> /// <returns></returns> public static string GetDBPath() { string str = Assembly.GetExecutingAssembly().Location; str = Path.GetDirectoryName(str) + @"\__AssemblyInfo__.ini"; str = File.ReadAllText(str, System.Text.Encoding.Unicode); int index = str.IndexOf("file:///") + 8; int length = str.IndexOf("/bin"); str = str.Substring(index, length - index); str = str.Replace('/', '\\'); str += @"\App_Data\DB.mdb"; return str; //最后返回的就是該數(shù)據(jù)庫的物理路徑. }
代碼解釋:
1. string str = Assembly.GetExecutingAssembly().Location;
獲取到的值是一個臨時目錄,如:“C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\myproject\ba81bed7\a7082081\assembly\dl3\62f82680\8345eb5b_37a6c901\abc.dll
2.str = Path.GetDirectoryName(str) + @"\__AssemblyInfo__.ini";
關(guān)鍵是這一句,在dll文件同一目錄下有一個"__AssemblyInfo__.ini"文件,用記事本打開可以發(fā)現(xiàn)里面包含有dll的實(shí)際物理地址,知道這個就好辦了.
3.
str = File.ReadAllText(str, System.Text.Encoding.Unicode); int index = str.IndexOf("file:///") + 8; int length = str.IndexOf("/bin"); str = str.Substring(index, length - index); str = str.Replace('/', '\\'); str += @"\App_Data\cms.mdb";
關(guān)于怎么在asp.net中獲取項目的根目錄就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。