-2

我正在使用 asp.net 和 c# 创建一个网站,
我需要一个一个地访问目录中的所有文件。所以我写了下面的代码。

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

但它给出了一个错误。这样做的正确方法是什么?提前致谢。

4

3 回答 3

6

一点建议,在 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异常。

于 2013-08-27T17:20:08.797 回答
1

这里有两个潜在的问题。

  1. 如果你using System.IO;的文件中Directory有,编译器将找不到该类。

  2. 您指定路径 ( "images/movies") 的方式将与当前工作目录相关,这可能不是正确的目录。您应该使用Server.MapPathPath类来构建正确文件夹的完整路径,因此您可以使用完整的绝对路径指定正确的文件夹。

于 2013-08-27T17:18:47.537 回答
1

我得到了正确的方法。这是

    string[] ssImgs = Directory.GetFiles(Server.MapPath("images/movies"));
于 2013-08-27T17:32:46.980 回答