Web应用程序路径中的不同斜杠

时间:2014-05-28 14:42:28

标签: c# asp.net asp.net-mvc

为什么我需要检查Web服务器上是否存在文件夹我需要在路径字符串中使用反斜杠:

 if (Directory.Exists(@"~\assets\images\gallery\thumbnails"))

加载图片时我需要使用斜杠吗?

 new WebImage("~/assets/images/gallery/thumbnail/name.jpg")

这背后有什么规则?

感谢。

3 个答案:

答案 0 :(得分:1)

我相信WebImage指的是虚拟路径,如URL中所使用并由浏览器引用(例如)。 目录是指服务器上的实际物理目录。 Windows对物理目录使用反斜杠。 URL约定使用斜杠表示虚拟路径。

答案 1 :(得分:1)

Directory.Exists是对文件系统的检查,在Windows上跟Windows path specification(链接不完全是"规范,"但是会为此目的){ {1}}作为目录分隔符。但是,在* nix系统上,它将\作为目录分隔符。因此,应该使用Path.DirectorySeparatorChar来保证正确性和互操作性。

/采用网址引用(尽管WebImage),然后RFC 1738~定义为细分分隔符。

这两者虽然看起来很相似,却是不同的(大多数)不相关的概念。

答案 2 :(得分:0)

对于URL,您使用正斜杠。在Windows中的文件路径中,您使用反斜杠。第一条路径是硬盘驱动器上的某个位置。第二条路径是URL。