2011-12-10 13 views
4

net/C#アプリケーション私はアイテムのリストを持っています。私のローカルリソースに画像があるかどうかを確認する

コードの後ろに: 各アイテムのローカルリソースから画像を割り当てたいと思います。アイテム名とピクチャ名は同じです。 画像はすべてプロジェクトの「画像」フォルダにあります。私は項目に画像を割り当てる方法の

例:

Item1.PictureUrl = "images/items/" + item1.Name + ".jpg"; 

は、私は写真を持っていない項目があります。私はそれらのためにデフォルトの画像を割り当てたい。

私は絵がこれを使用して存在しているかどうかをチェックしてみました:

foreach(ObjectItem item in ListOfItems) 
{ 
    if(File.Exists("images/items/"+item.Name+".jpg")) 
      item.PictureUrl = "images/items/"+item.Name+".jpg"; 
     else 
      item.PictureUrl= "images/Default.jpp"; 
} 

しかしFile.Existsメソッドは常に画像が存在する場合でも、falseを返しています。 「/」の代わりに「\」を使用しようとしましたが、機能しませんでした。

どうすればいいですか?

は、任意のヘルプあなたはFile.Existsが正しく動作するためには物理ファイルパスへの相対ファイルパスを変換する必要があり

答えて

13

いただきありがとうございます。

あなたはファイルの存在を確認するためにServer.MapPathを使用したいと思うでしょう:

if(File.Exists(Server.MapPath("/images/items/"+item.Name+".jpg"))) 
また

、あなたはServer.MapPathのを使用する場合、要求はウェブに関連しているように、あなたは通常、先頭のスラッシュを指定する必要がありますアプリケーションのディレクトリ。

先頭のスラッシュを指定しないと、処理中の現在のページに対して相対パスが生成されます。このページがサブディレクトリにある場合、画像フォルダには移動しません。

+0

ありがとうございます! – Youssef

+1

あなたのウェブサイトの下に仮想ディレクトリが存在しない場合は、/の代わりに〜を使用する必要があります。 http://stackoverflow.com/questions/275781/server-mappath-server-mappath-server-mappath-server-mappathを参照してください – zero7

+0

はい私はそれを使用しました。ありがとう – Youssef

関連する問題