2013-08-27 52 views
-3

我正在使用asp.net和c創建一個網站#
我需要在目錄中逐一訪問所有文件。所以我寫了下面的代碼。Directory.GetFiles string給出錯誤

string[] ssImgs = Directory.GetFiles("images/movies"); 
    Label1.Text = ssImgs[0]; 
    Label2.Text = ssImgs[1]; 

但它給出了一個錯誤。什麼是正確的方法來做到這一點?提前致謝。

+8

正確的方法是告訴我們您收到哪個錯誤;-) – Oscar

+0

正確的方法是修復錯誤。如果您需要幫助,發佈實際錯誤可能會有所幫助。 – nvoigt

+3

小心!我可以感覺到一些倒票選民會跳入這裏,並且... –

回答

6

的一點小建議,在ASP.NET中,槓桿Server.MapPath使用文件系統時:

string[] ssImgs = Directory.GetFiles(Server.MapPath("~/images/movies")); 

其中~/images/movies是從Web應用程序的根充分相對路徑。其次,在抓取數組的索引之前,確保它確實存在於數組中。這將是更好地改變你的索引代碼是這樣的:

Label1.Text = ssImgs.Length >= 1 ? ssImgs[0] : "File 1 not found."; 
Label2.Text = ssImgs.Length >= 2 ? ssImgs[1] : "File 2 not found."; 

通過使你不必擔心得到一個DirectoryNotFound異常或IndexOutOfRange例外,這兩個變化。

1

這裏有兩個潛在的問題。

  1. 如果你做在你的文件using System.IO;,該Directory類不會被編譯器發現。

  2. 您指定路徑的方式("images/movies")將與當前工作目錄相關,該目錄可能不是正確的目錄。您應該使用Server.MapPathPath類來構建適當文件夾的完整路徑,以便您可以使用完整的絕對路徑指定正確的文件夾。

+0

你的意思是'Server.MapPath',而不是'Path'對嗎? –

+0

@AlexeiLevenkov,呃,在技術上你可以使用'Path'類,並且如果它真的很有名,就構建一條合適的路徑。 –

+0

@AlexeiLevenkov可能,是的 - Path類也可能有用,在很大程度上取決於事物的位置... –

1

我得到了正確的方法。它是

string[] ssImgs = Directory.GetFiles(Server.MapPath("images/movies")); 
+4

沒有答案 - 沒有必要重新發布答案。只需接受正確的一個。 –