asp.net编程获取项目根目录实现方法集合

2025-05-29 0 19

本文实例总结了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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 asp.net编程获取项目根目录实现方法集合 https://www.kuaiidc.com/101712.html

相关文章

发表评论
暂无评论