常用的有:
1、实现功能:
Server.MapPath能够获取指定URL相对服务器的物理路径,在IIS服务端,能够根据文件名来获取该文件的物理路径;
2、存在命令空间:
System.Web.HttpContext.Current.Server.MapPath 以及System.web.MVC.Control.Server.Mapth;
3、使用情况:
既然是System.Web.HttpContent 也及时表明该方法只能放在Http.web中使用,非该环境系统会扔出一个错误;非web环境是什么意思那,举个例子,我们使用线程来处理某个业务逻辑的时候,这个时候你使用该方法,那必然报错,以为你已经脱离了web环境。所以视情况而定;获取虚拟目录的物理地址,该方法很有效果;
随便补充一句,多线程编程的时候,一定要分清楚那些事线程能够获取的资源,那些事依赖其他环境获取的变量,比如IIS中多线程获取缓存数据,离开了HttpWeb这环境来获取IIS的缓存,必然是失败的,所以要分清楚多线程编程时候,使用的资源对象。线程安全对象集合:ConcurrentQueue、ConcurrentBag等
4、需要注意事项:
system.Web.HttpContext.Current.Server.MapPath("myPic") 也就是获取当前平级目录地址;
system.Web.HttpContext.Current.Server.MapPath("../myPic") 也就是获取当前上级目录地址;
使用的时候需要慎重;
来自 <https://www.cnblogs.com/xibei666/p/5625351.html>
其他还有:
// 获取程序的基目录。
System.AppDomain.CurrentDomain.BaseDirectory
// 获取模块的完整路径。
System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
// 获取和设置当前目录(该进程从中启动的目录)的完全限定目录。
System.Environment.CurrentDirectory
// 获取应用程序的当前工作目录。
System.IO.Directory.GetCurrentDirectory()
// 获取和设置包括该应用程序的目录的名称。
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase
以上转自:http://www.cnblogs.com/zhouzangood/articles/2987088.html
例子:
图1
folder: D:\鼓浪屿\jiance\MonitoringEarlyWarning\\BusinessFile\bhqh\2
来自 <https://blog.csdn.net/leonardo_dream/article/details/50979049>