Server.MapPath不喜欢〜/和./

The*_*ude 0 vbscript asp-classic

我使用以下代码尝试从我的代码文件中查找包含在另一个目录中的文件.

Set fi=fs.OpenTextFile(Server.MapPath("~/counter/counter.txt"), 1)
Run Code Online (Sandbox Code Playgroud)

我也试过了.

Set fi=fs.OpenTextFile(Server.MapPath("./root/folder1/counter/counter.txt"), 1)
Run Code Online (Sandbox Code Playgroud)

在任何一种情况下,这应该让我回到counter.txt文件.从我的理解〜/向上移动1个目录和./移动到根目录.

但是两次都收到错误,说明使用了无效字符.删除这些时,我得到一个不同的错误,说找不到路径(我希望这是因为它不是一个有效的路径而没有移动1个目录).

在VBscript中执行以下操作的有效字符是什么:向上移动一个目录?移动到根目录?

谢谢您的帮助

dma*_*tta 8

一些东西:

波形符"〜"在此处无效.

单周期字符"." 用于指定当前目录/文件夹.

一组句点字符".."用于指定父目录/文件夹.例如,要引用在当前目录的父级中找到的文件,您可以使用:

Server.MapPath("../counter.txt")
Run Code Online (Sandbox Code Playgroud)

您可以链接这些链接以超过单个父路径.要引用在当前上方找到三个目录的文件,您可以使用:

Server.MapPath("../../../counter.txt")
Run Code Online (Sandbox Code Playgroud)

有关MapPath功能的MSDN文档概述了这一点.如果您希望能够引用当前目录上方的相对路径,请注意此处列出的关于启用父路径的注意事项.如果在尝试引用父路径时出错,则表明您没有启用父路径.

  • +1值得指出"〜"在ASP.NET中用于指示应用程序的根文件夹,但ASP经典不支持此语法. (3认同)
  • +1 此外,以正斜杠“/”开头的路径指的是应用程序根目录,如`include virtual`。至少在 IIS7+ 中,我说得对吗? (2认同)