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

本文关键字:应用程序 路径 web | 更新日期: 2023-09-27 18:05:29

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

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

而加载图像,我需要使用斜杠?

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

这背后有什么规则?

谢谢。

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

Directory.Exists是对文件系统的检查,它在Windows上遵循Windows路径规范(链接不完全是"规范",但可以达到目的),其中'作为目录分隔符。然而,在*nix系统上,它将使用/作为目录分隔符。因此,为了正确性和互操作性,应该使用Path.DirectorySeparatorChar

WebImage接受URL引用(尽管~),并遵循RFC 1738,将/定义为段分隔符。

url使用正斜杠。在Windows的文件路径中使用反斜杠。第一个路径是指向硬盘驱动器上的一个位置。第二个路径是URL。

我相信WebImage指的是一个虚拟路径,就像在url中使用的那样,被浏览器引用(例如)。"目录"为服务器上的实际物理目录。Windows使用反斜杠表示物理目录。URL约定使用斜杠表示虚拟路径