2013-07-10 180 views
1

我想在特定目錄內返回圖像文件。我想創建像這樣的圖像路徑Directory.GetFiles()返回完整路徑

string[] ImageNames = Directory.GetFiles(path); 


     string tds=""; 
     for (int i = 0; i < ImageNames.Length; i++) 
     { 
      tds += "<tr> <td> <img href=/Articles/ArticleImageStore/'" + ImageNames[i] + "' width='64' height='64'></img></tr> </td>"; 
     } 

但它返回磁盤上文件的物理路徑。我應該怎麼做?

回答

4

您可以使用Path.GetFileName

string[] ImageNames = Directory.GetFiles(path) 
            .Select(p => Path.GetFileName(p)).ToArray(); 

這將產生與文件的唯一名稱的列表。

+0

它返回一個文件.. –

+0

@SpiralsWhirls它返回一個文件數組。如果該數組只有一個元素,那是因爲只有一個文件。 – evanmcdonnal

+0

@SpiralsWhirls:愚蠢的問題:你有超過1個文件在該目錄中?如果是這樣,它們是否位於子目錄中? –

3

而不是使用Directory類我會使用DirectoryInfo然後你可以做到這一點;

string[] fNames = new DirectoryInfo(dirPath).GetFiles("*.png").Select(x => x.FileName).ToArray(); 

DirectoryInfo版本的GetFiles的返回的FileInfo對象,而不是作爲字符串的文件路徑,這樣你就可以做的結果多了很多。我碰巧選擇了哪種排除方式,只需爲每個由GetFiles返回的FileInfo實例投影FileName,但如果您需要對文件執行更多操作,則可以將其刪除,然後遍歷FileInfo對象。

此外,我正在使用一個重載,它有一個模式,可以很容易地忽略你的非圖像文件。

DirectoryInfo docs; http://msdn.microsoft.com/en-us/library/8he88b63.aspx

+0

謝謝@evanmcdonnal –

+0

我現在要研究這個..謝謝。很有幫助。 –

相關問題