我正在使用asp.net和c#
创建一个网站
我需要在目录中逐个访问所有文件。所以我写了下面的代码。
string[] ssImgs = Directory.GetFiles("images/movies");
Label1.Text = ssImgs[0];
Label2.Text = ssImgs[1];
但它给出了一个错误。这样做的正确方法是什么?提前谢谢。
答案 0 :(得分:6)
在ASP.NET中使用文件系统时,一点建议是利用Server.MapPath
:
string[] ssImgs = Directory.GetFiles(Server.MapPath("~/images/movies"));
其中~/images/movies
是来自Web应用程序的 root 的完整相对路径。
其次,在抓住数组的索引之前,请确保它实际存在。最好将索引代码更改为以下内容:
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
类。
您指定路径("images/movies"
)的方式将相对于当前工作目录,这可能不是正确的目录。您应该使用Server.MapPath或Path
类来构建正确文件夹的完整路径,这样您就可以使用完整的绝对路径指定正确的文件夹。
答案 2 :(得分:1)
我得到了正确的方法。它是
string[] ssImgs = Directory.GetFiles(Server.MapPath("images/movies"));