1

次のディレクトリを持つasp.net Webサイトがあります。

C:\Users\Desktop\Testing\src\website

ここに「files」という別のフォルダーがあります。

C:\Users\Desktop\Testing\src\files

プロジェクト内から、「ファイル」フォルダーからファイルを読み込もうとしています。次のようにしています。

var path = HttpContext.Current.Server.MapPath("/files"); 

私も試しました:

var path = HttpContext.Current.Server.MapPath(".."); 

しかし、それは言うFailed to map the path '/files'.

この理由は何でしょうか?私のIISで何かできるでしょうか?どうすればこれを機能させることができますか??

ありがとうございました!

4

2 に答える 2

5

これはできません。このServer.MapPathメソッドは、Web アプリケーションのルートに関連するフォルダーでのみ機能します。この場合はC:\Users\Desktop\Testing\src\website. この ASP.NET アプリケーションの制御ドメインを離れることになるため、この方法を使用して階層の 1 レベル上に移動することはできません。これを実現するには、絶対パスを使用する必要があります。たとえば、アプリケーションの外部にあるファイルを読みたい場合:

var data = File.ReadAllText(@"C:\Users\Desktop\Testing\src\files\somefile.txt");
于 2011-09-18T14:11:12.080 に答える
0

Web サイトの仮想ディレクトリが .../src/website にマップされていると仮定すると、次のような「ファイル」フォルダーを取得する必要があります。

var filesDir = Path.Combine(HttpContext.Current.Server.MapPath("~"), "../files/");
于 2011-09-18T14:14:14.447 に答える