デバッグしようとしている.NETアプリケーションがあり、アプリケーションの一部がプロジェクトからファイルを読み込みます。このファイルは私のコードでIIS Expressを使用してデバッグ中にファイルへのフルパスを取得
C:\Users\USER_FOLDER\Documents\Visual Studio 2012\Projects\MY_PROJECT\_templates\myFile.html
に位置しており、私は、ファイルへの相対パスを指定して、自分のファイルへの完全なディレクトリパスを取得するにはDirectoryInfoクラスを使用します。
string myFile = (new DirectoryInfo("_templates/myFile.html")).FullName;
しかし、このリターン次のパス(余分な\ 'sのエスケープ文字として):
"C:\\Program Files\\IIS Express\\_templates\\myFile.html"
私が記載されている最初のパス、第三はないと一致しますIIS Expressでデバッグするときに返されるパスを期待していました。どうしてこれなの?パスを適切に引き出すために私のプロジェクトに設定する必要のあるものがありますか?私はIIS7サイトに自分のコードを配備してもこれが起こらないと思っていますが、まだそのテストレベルには達していません。
そのは、プログラムファイル\\ IIS Expressは\\ 'それはあなたがとてもについて具体的にそのディレクトリのパスからそれを起動する意味'返す場合ディレクトリパス'' _templates/myFile.html ''が親ディレクトリ内のローカルディレクトリであり、あまり具体的ではないと考えてください。 –
その際、Server.MapPathを呼び出すと、よりわかりやすくなくても正しいパスが返されました。私は他の言語と同様に、ファイルを参照していたスクリプトの場所を基準にしていたが、その内容を読むためには、そのパスを扱っていたからだ。 NETサーバーはパスへの完全修飾URIを必要とし、私はそれを導出するために間違ったオブジェクトを使用していました。なぜ私の_valid_質問が投票されたのか困惑しています。 –