1

サーバーに保存されている画像を表示する必要があるページがあります。その画像を見つけるために、私は次のコードを使用します:

 if (System.IO.File.Exists(Server.MapPath(filepath)))

これを使用すると、ファイルが存在するため、適切な結果が得られます。

しかし、私が以下のような絶対的な道を与えるとき:

 if (System.IO.File.Exists("http://myserever.address/filepath"))

falseを返します。

ファイルは物理的にそこに存在しますが、なぜ見つからないのかわかりません。

4

2 に答える 2

2

File.ExistsでHTTPパスを使用することはできません。ネットワーク共有とローカルファイルシステムをサポートします。サーバー側のWebアプリケーションでこれを実行する場合。最初に使用Server.MapPath()して物理的な場所を見つけ、次にFile.Existsを使用します。

ここについて読む:http Server.MapPath//msdn.microsoft.com/en-us/library/ms524632%28v=vs.90%29.aspx

例えば。

string filePath = ResolveUrl("~/filepath/something.jpg");

if (File.Exists(Server.MapPath(filePath)))
{
     //Do something. 
}
于 2012-08-02T07:20:45.270 に答える
2

System.IO.File.Existsのパスパラメータは、ファイルシステム内の実際のファイルへのパスです。

Server.MapPath()を呼び出すと、URIが実際のファイルパスに変更されます。

したがって、意図したとおりに機能しています。

于 2012-08-02T07:22:10.440 に答える