C#获取文件物理相对绝对路径目录的N种方法

个人精心整理,参考自网络,全面而无重复,转载请注明出处
各种方法其实都大同小异,并没有只适用于某环境的说法,底层实现应该是差不多的
只要引用并using相关类就能用,鬼知道为啥搞出来这么多相似的方法
以下语句按照所属类来分类了,并使用完整名称空间路径更清晰明了,结果路径全部是本人实测,注意有些返回路径最后没有"\"

以下结果由wwwroot\JiTai\TestPath.aspx页面的后台程序获取,大部分将返回wwwroot目录

System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName模块路径
结果c:\windows\system32\inetsrv\w3wp.exe

System.AppDomain.CurrentDomain.BaseDirectory获取基目录
结果d:\clientweb\Web418453\wwwroot\
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase应用程序目录
结果d:\clientweb\Web418453\wwwroot\

System.Environment.CurrentDirectory工作目录
结果c:\windows\system32\inetsrv

System.Threading.Thread.GetDomain().BaseDirectory获取当前应用程序所在目录
结果d:\clientweb\Web418453\wwwroot\

System.Windows.Forms.Application.StartupPath应用程序目录
结果c:\windows\system32\inetsrv
System.Windows.Forms.Application.ExecutablePath应用程序目录
结果c:\windows\system32\inetsrv\w3wp.exe

Server.MapPath("虚拟路径")返回当前相对路径对应的物理绝对路径,一般用于获取页面的物理路径
结果d:\clientweb\Web418453\wwwroot\JiTai

System.Reflection.Assembly.GetExecutingAssembly().Location得到程序类库文件的路径
结果C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\a922cb06\9c5c43fe\assembly\dl3\f4a28de5\fee7f126_2853cf01\JiTaiJiaXiao.DLL

获取环境变量里面设置的系统目录
System.Environment.GetEnvironmentVariable("windir")结果C:\WINDOWS
System.Environment.GetEnvironmentVariable("INCLUDE")结果空白
System.Environment.GetEnvironmentVariable("TMP")结果C:\WINDOWS\TEMP
System.Environment.GetEnvironmentVariable("TEMP")结果C:\WINDOWS\TEMP
System.Environment.GetEnvironmentVariable("Path")结果是一大串各种命令行程序的目录地址
System.Environment.SystemDirectory结果C:/windows/system32

Request.PhysicalApplicationPath网站web程序常用,获取请求页面所在目录
结果d:\clientweb\Web418453\wwwroot\

System.IO.Directory.GetCurrentDirectory()结果c:\windows\system32\inetsrv
比较特殊的一个方法、返回文件流对应的路径,不可靠,这个会返回程序最后访问的文件目录
比如Word打开了E:\doc\my.doc,此时执行这个方法就返回E:\doc

更多问题欢迎QQ交流,176457718

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值