一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - asp.net編程獲取項目根目錄實現方法集合

asp.net編程獲取項目根目錄實現方法集合

2019-12-27 12:36夢斷天涯 ASP.NET教程

這篇文章主要介紹了asp.net編程獲取項目根目錄實現方法,結合實例形式分析總結了asp.net針對項目目錄的操作技巧與注意事項,需要的朋友可以參考下

本文實例總結了asp.net編程獲取項目根目錄實現方法。分享給大家供大家參考,具體如下:

編寫程序的時候,經常需要用的項目根目錄。自己總結如下

1、取得控制臺應用程序的根目錄方法

方法1、Environment.CurrentDirectory 取得或設置當前工作目錄的完整限定路徑
方法2、AppDomain.CurrentDomain.BaseDirectory 獲取基目錄,它由程序集沖突解決程序用來探測程序集

2、取得Web應用程序的根目錄方法

方法1、HttpRuntime.AppDomainAppPath.ToString();//獲取承載在當前應用程序域中的應用程序的應用程序目錄的物理驅動器路徑。用于App_Data中獲取
方法2、Server.MapPath("") 或者 Server.MapPath("~/");//返回與Web服務器上的指定的虛擬路徑相對的物理文件路徑
方法3、Request.ApplicationPath;//獲取服務器上ASP.NET應用程序的虛擬應用程序根目錄

3、取得WinForm應用程序的根目錄方法

① Environment.CurrentDirectory.ToString();//獲取或設置當前工作目錄的完全限定路徑
② Application.StartupPath.ToString();//獲取啟動了應用程序的可執行文件的路徑,不包括可執行文件的名稱
③ Directory.GetCurrentDirectory();//獲取應用程序的當前工作目錄
④ AppDomain.CurrentDomain.BaseDirectory;//獲取基目錄,它由程序集沖突解決程序用來探測程序集
⑤ AppDomain.CurrentDomain.SetupInformation.ApplicationBase;//獲取或設置包含該應用程序的目錄的名稱

其中:以下兩個方法可以獲取執行文件名稱

1、Process.GetCurrentProcess().MainModule.FileName;//可獲得當前執行的exe的文件名。
2、Application.ExecutablePath;//獲取啟動了應用程序的可執行文件的路徑,包括可執行文件的名稱

相信很多用asp.net+Access做網站的朋友經常都會有這樣一個需求:就是想在數據庫訪問層類庫中獲取Access數據庫的物理路徑,然后再拼接數據庫連接字符串進行數據庫相關的操作.在網站UI層我們可以有很多種方法獲取一個網站的物理路徑,如:

1. Request.PhysicalApplicationPath

2. Request.MapPath("~/"),但是在數據庫訪問層用這些方法就不行

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
using System.Reflection;
using System.IO; //使用前別忘了引用這兩個命名空間
/// <summary>
/// 獲取Access數據庫的物理路徑
/// </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;  //最后返回的就是該數據庫的物理路徑.
}

代碼解釋:

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";

關鍵是這一句,在dll文件同一目錄下有一個"__AssemblyInfo__.ini"文件,用記事本打開可以發現里面包含有dll的實際物理地址,知道這個就好辦了.

3.

?
1
2
3
4
5
6
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";

這些代碼就不詳細解釋了,就是把那個ini文件讀出來,從里面找出網站bin文件夾的實際物理路徑,然后拼接數據庫文件名,就得到了數據庫的物理路徑了,不過這個方法有效的前提是數據庫文件跟網站在同一目錄下才行.

希望本文所述對大家asp.net程序設計有所幫助。

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 麻豆网站在线观看 | 色怡红院| 秋霞网毛片 | 无人区乱码区1卡2卡三卡在线 | 手机国产乱子伦精品视频 | 国产欧美日韩在线播放 | 亚洲天堂男人 | 双性鞭蒂软汁淋漓 | 欧美 国产 日韩 第一页 | 亚洲精品免费在线 | 成人国产精品视频频 | 美女扒开胸罩露出奶 | 三级全黄裸体 | 五月天婷婷亚洲 | 黄在线观看www免费看 | 日本在线看免费 | 日韩伦理在线免费观看 | 91精品综合久久久久久五月天 | 欧美成年黄网站色高清视频 | 亚洲欧美精品一区天堂久久 | 免费aⅴ片 | 亚洲精品www久久久久久久软件 | 故意短裙公车被强好爽在线播放 | 亚洲精品老司机福利在线播放 | 日本人妖网站 | 欧美一区二区三区精品国产 | 色婷婷综合和线在线 | 精品人伦一区二区三区潘金莲 | se01在线看片| 国产精品自在线拍 | 国产japanese孕妇孕交 | 国产精品亚洲午夜一区二区三区 | 99精品热线在线观看免费视频 | 新影音先锋男人色资源网 | 19+韩国女主播激情vip视频在线 | 好大好硬好深好爽想要小雪 | 九九大香尹人视频免费 | 男同桌脱我奶罩吸我奶作文 | 秋霞在线观看成人高清视频51 | 短篇小说肉 | 天天狠天天透天干天天怕处 |