Directory.GetFiles字符串给出错误

时间:2013-08-27 17:15:10

标签: c# asp.net getfiles

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

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

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

3 个答案:

答案 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)

这里有两个潜在的问题。

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

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

答案 2 :(得分:1)

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

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