2012-06-27 124 views
0

我正在使用以下代碼嘗試從我的代碼文件中找到另一個目錄中包含的文件。Server.MapPath不喜歡〜/和./

Set fi=fs.OpenTextFile(Server.MapPath("~/counter/counter.txt"), 1) 

我也試過了。

Set fi=fs.OpenTextFile(Server.MapPath("./root/folder1/counter/counter.txt"), 1) 

在這兩種情況下,這應該讓我回到counter.txt文件。從我的理解〜/向上移動1個目錄,然後移動到根目錄。

但是,兩次都收到一個錯誤,指出使用了無效字符。當刪除這些我得到一個不同的錯誤,說路徑找不到(我期望,因爲它不是一個有效的路徑,而不移動1目錄)。

什麼是有效字符在VBscript中執行以下操作: 向上移動一個目錄? 向上移動到根目錄?

感謝您的幫助

回答

8

有幾件事情:

波浪符號 「〜」 是無效的在這裏。

單週期字符「。」用於指定當前目錄/文件夾。

一組句點字符「..」用於指定父目錄/文件夾。例如,指在當前目錄的父目錄中的文件時,您可以使用:

Server.MapPath("../counter.txt") 

你可以連這些走上多單父路徑更多。要引用文件中找到三個目錄目前上方,你可以使用:

Server.MapPath("../../../counter.txt") 

的文檔在MSDN上的MapPath功能概述了這一點。如果您希望能夠引用當前目錄上方的相對路徑,請注意此處列出的有關enabling parent paths的警告。如果在嘗試引用父路徑時遇到錯誤,那麼您沒有啓用父路徑。

+3

+1值得指出「〜」在ASP.NET中用於指示應用程序的根文件夾,但ASP classic不支持此語法。 – AnthonyWJones

+1

+1此外,以斜槓「/」開頭的路徑指的是像「include virtual」這樣的應用程序根目錄。至少在IIS7 +中,我是否正確? –