7

デバッグしようとしている .NET アプリケーションがあり、アプリケーションの一部がプロジェクトからファイルをロードします。このファイルは次の場所にあります。

C:\Users\USER_FOLDER\Documents\Visual Studio 2012\Projects\MY_PROJECT\_templates\myFile.html

私のコードでは、ファイルへの相対パスを指定し、DirectoryInfo クラスを使用してファイルへの完全なディレクトリ パスを取得します。

string myFile = (new DirectoryInfo("_templates/myFile.html")).FullName;

ただし、これは次のパスを返します (エスケープ文字として追加の \ が使用されます)。

"C:\\Program Files\\IIS Express\\_templates\\myFile.html"

IIS Express でのデバッグ時に返されるパスは、3 番目ではなく、最初にリストしたパスと一致すると予想していました。どうしてこれなの?パスを適切に導出するために、プロジェクトで設定する必要があるものは他にありますか? 私のコードを IIS7 サイトに展開した場合、これは起こらないと思いますが、まだそのテスト レベルには達していません。

4

1 に答える 1

7

Server.MapPathを使用します:

Server.MapPath("~/_templates/myFile.html")

またはHttpServerUtility.MapPath

HttpServerUtility.MapPath("~/_templates/myFile.html")
于 2012-11-08T18:23:56.520 に答える