我正在使用 asp.net 和 c# 创建一个网站,
我需要一个一个地访问目录中的所有文件。所以我写了下面的代码。
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"));
where是从Web 应用程序的根目录~/images/movies
开始的完整相对路径。
其次,在获取数组的索引之前,请确保它确实存在。最好将您的索引代码更改为以下内容:
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
类来构建正确文件夹的完整路径,因此您可以使用完整的绝对路径指定正确的文件夹。
我得到了正确的方法。这是
string[] ssImgs = Directory.GetFiles(Server.MapPath("images/movies"));