个人精心整理,参考自网络,全面而无重复,转载请注明出处
各种方法其实都大同小异,并没有只适用于某环境的说法,底层实现应该是差不多的
只要引用并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