我正在使用asp.net和c創建一個網站#
我需要在目錄中逐一訪問所有文件。所以我寫了下面的代碼。Directory.GetFiles string給出錯誤
string[] ssImgs = Directory.GetFiles("images/movies");
Label1.Text = ssImgs[0];
Label2.Text = ssImgs[1];
但它給出了一個錯誤。什麼是正確的方法來做到這一點?提前致謝。
我正在使用asp.net和c創建一個網站#
我需要在目錄中逐一訪問所有文件。所以我寫了下面的代碼。Directory.GetFiles string給出錯誤
string[] ssImgs = Directory.GetFiles("images/movies");
Label1.Text = ssImgs[0];
Label2.Text = ssImgs[1];
但它給出了一個錯誤。什麼是正確的方法來做到這一點?提前致謝。
的一點小建議,在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
例外,這兩個變化。
這裏有兩個潛在的問題。
如果你做在你的文件using System.IO;
,該Directory
類不會被編譯器發現。
您指定路徑的方式("images/movies"
)將與當前工作目錄相關,該目錄可能不是正確的目錄。您應該使用Server.MapPath或Path
類來構建適當文件夾的完整路徑,以便您可以使用完整的絕對路徑指定正確的文件夾。
你的意思是'Server.MapPath',而不是'Path'對嗎? –
@AlexeiLevenkov,呃,在技術上你可以使用'Path'類,並且如果它真的很有名,就構建一條合適的路徑。 –
@AlexeiLevenkov可能,是的 - Path類也可能有用,在很大程度上取決於事物的位置... –
我得到了正確的方法。它是
string[] ssImgs = Directory.GetFiles(Server.MapPath("images/movies"));
沒有答案 - 沒有必要重新發布答案。只需接受正確的一個。 –
正確的方法是告訴我們您收到哪個錯誤;-) – Oscar
正確的方法是修復錯誤。如果您需要幫助,發佈實際錯誤可能會有所幫助。 – nvoigt
小心!我可以感覺到一些倒票選民會跳入這裏,並且... –