C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别相关的知识,希望对你有一定的参考价值。

../是写在客户端的,浏览器可以识别,并帮你找到相应的文件,
~/代表的是网站的根目录,这个要写在服务器端,也就是c#代码中,浏览器是不能识别的。
相对路径是虚拟路径,物理路径就是真实路径(也就是在服务器本地的路径),比如说你的网站存放在你的d盘。那么你的网站的物理路径就是d:\网站。。。类似这样的,而你在代码中写网站的虚拟路径就可以直接写~/就是网站的根目录了。。。。不知道说的是否明白。。
参考技术A C#中网站根路径,请站点的最外一层
/表示
应用根路径
~/表示,有时候C#程序路径并不是网站路径
物理路径
server.mappath("~/")
是指应用程序放在服务器硬盘的位置
c:\aaa\bbb\ccc
绝对路径:是指以网站根路径为起点页面的位置
/aa/bb/cc/a.aspx
相对路径:是以当前页面的起点目标页面的位置
如当前页面是
/aa/bb/b.aspx
要找
/aa/bb/cc/a.aspx
路径应该是cc/a.aspx
如果要找aa文件夹里的东西就用../xx.aspx

C#获取文件物理路径(绝对路径)

在WinForm窗体应用程序和Web应用程序中,为了上传文件、读取绝对路径下的文件等功能,需要获取文件的物理路径,可以使用以下这些常用方法。

一、在WinForm窗体应用程序中

可用以下方法获取应用程序文件所在文件夹:

System.Environment.CurrentDirectory;
System.IO.Directory.GetCurrentDirectory();
System.Windows.Forms.Application.StartupPath;
System.AppDomain.CurrentDomain.BaseDirectory;
//返回路径末尾有“\\”
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//返回路径末尾有“\\”
System.Threading.Thread.GetDomain().BaseDirectory;
//返回路径末尾有“\\”

二、在MVC中

1.在Controller控制器中获取绝对路径:

Server.MapPath("含文件名的虚拟路径");
//返回网站中指定文件的绝对路径
Server.MapPath("/");
//返回网站根目录的绝对路径,末尾有“\\”

2.在Models中是无法使用Server.MapPath方法的,这时候可以用以下方法获取网站根目录的绝对路径:

System.AppDomain.CurrentDomain.BaseDirectory;
//返回路径末尾有“\\”
System.AppDomain.CurrentDomain.SetupInformation.ApplicationBase;
//返回路径末尾有“\\”
System.Threading.Thread.GetDomain().BaseDirectory;
//返回路径末尾有“\\”

 

以上是关于C#中网站根路径、应用根路径、物理路径、绝对路径,虚拟路径的区别的主要内容,如果未能解决你的问题,请参考以下文章

普通JAVA类 如何获取,WEB项目的根路径

C#获取文件物理路径(绝对路径)

C#获取文件物理路径(绝对路径)

如何把物理路径转换成虚拟路径

Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件

Angularjs - TypeError:路径必须是绝对路径或指定根到 res.sendFile