2011-12-10 35 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,即使圖片存在。 我也試過用'\'代替'/',但沒有工作

我該怎麼做?

感謝您的幫助

回答

13

你需要相對文件路徑轉換爲物理文件路徑,以便File.Exists正常工作。

你將要使用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