本文实例总结了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程序设计有所帮助。
相关文章
- ASP.NET本地开发时常见的配置错误及解决方法? 2025-06-10
- ASP.NET自助建站系统的数据库备份与恢复操作指南 2025-06-10
- 个人网站服务器域名解析设置指南:从购买到绑定全流程 2025-06-10
- 个人网站搭建:如何挑选具有弹性扩展能力的服务器? 2025-06-10
- 个人服务器网站搭建:如何选择适合自己的建站程序或框架? 2025-06-10
- 2025-07-10 怎样使用阿里云的安全工具进行服务器漏洞扫描和修复?
- 2025-07-10 怎样使用命令行工具优化Linux云服务器的Ping性能?
- 2025-07-10 怎样使用Xshell连接华为云服务器,实现高效远程管理?
- 2025-07-10 怎样利用云服务器D盘搭建稳定、高效的网站托管环境?
- 2025-07-10 怎样使用阿里云的安全组功能来增强服务器防火墙的安全性?
快网idc优惠网
QQ交流群
-
2025-05-27 90
-
2025-06-04 71
-
2025-06-04 88
-
2025-05-29 88
-
2025-05-29 64