使用mklink做目录链接
环境 win 10
使用原因:
刚刚开始做项目,上传的附件都直接存在网站目录下了. 使用 Server..MapPath("~/")或 AppDomain.CurrentDomain.BaseDirectory 方式取的网站运行的物理根路径 , 但在后期使用过程中发现用户上传的东西越来越多.放在网站目录下使网站所在的盘符使用越来越大. 最终不得不把上传路径改掉.
一开始想去程序里改.但上传接口太多.少了漏了还是有风险的.而且改了要等程序更新才会有效. 所以这种方式被否了 , 然后又想用iis 建虚拟目录的方式来操作.把路径映射到资料盘去. 但发现 这种方式可以满足在程序里用Server..MapPath("~/")方式获取根路径的. 遇到BLL/公共类库使用 AppDomain.CurrentDomain.BaseDirectory 来取的就不使用了. 所以很快也被否了. 最后查了下直接在window下建目前映射的 信息查到了以下方式 亲测可用
mklink /j "映射为哪个路径" "从哪个来映射" 网上的解释是说这种方式把它们链接起来了(我的理解 就是做了映射关系)
例 mklink /j "D:\a" "C:\a" 把C盘下的A目录 映射到D盘的 a目录下 这样直接 就可以从D:\a 访问到 c:\a了 新产生的图标有一个快捷方式的操作. 但这样链接起来的区别于快捷方式. 大家可以试一下
mklink 还有其它的几种方式 详细参考 : https://www.jianshu.com/p/b1614a073087
- /D:创建目录符号链接。默认为文件符号链接。 (不占空间)
- /H:创建硬链接,而不是符号链接。 (只能在同盘符下操作 会产生新一份数据)
- /J:创建目录联接。 ( 不占空间)
参数
- Link:指定新的符号链接名称。
- Target:指定新链接引用的路径(相对或绝对)