0

次のコードを使用して、コードファイルから別のディレクトリに含まれているファイルを見つけようとしています。

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で次のことを行うための有効な文字は何ですか:単一のディレクトリを上に移動しますか?ルートディレクトリに移動しますか?

助けてくれてありがとう

4

1 に答える 1

8

いくつかのこと:

チルダ文字「〜」はここでは無効です。

単一ピリオド文字「。」現在のディレクトリ/フォルダを指定するためのものです。

ピリオド文字のセット「..」は、親ディレクトリ/フォルダを指定するためのものです。たとえば、現在のディレクトリの親にあるファイルを参照するには、次を使用します。

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

これらをチェーンして、複数の親パスをたどることができます。現在のディレクトリより3つ上のディレクトリで見つかったファイルを参照するには、次を使用します。

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

MapPath関数に関するMSDNのドキュメントで、これについて概説しています。現在のディレクトリより上の相対パスを参照できるようにする場合は、親パスの有効化についてここに記載されている注意に注意してください。親パスを参照しようとしたときにエラーが発生した場合は、親パスが有効になっていません。

于 2012-06-27T23:09:04.477 に答える