【问题标题】:Directory.GetFiles string gives an error [closed]Directory.GetFiles 字符串给出错误[关闭]
【发布时间】:2013-08-27 17:15:09
【问题描述】:

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

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

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

【问题讨论】:

  • 正确的方法是告诉我们您收到的是哪个错误 ;-)
  • 正确的做法是修复错误。如果您需要帮助,也许发布实际错误可能会有所帮助。
  • 当心!我能感觉到一些反对者会跳到这里......

标签: c# asp.net getfiles


【解决方案1】:

一点建议,在 ASP.NET 中使用文件系统时,利用Server.MapPath

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

其中~/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 异常。

【讨论】:

    【解决方案2】:

    这里有两个潜在的问题。

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

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

    【讨论】:

    • 你的意思是Server.MapPath,不是Path,不是吗?
    • @AlexeiLevenkov 可能,是的 - Path 类也可能有用,很大程度上取决于事物的位置......
    • 我已经用 System.IO 添加了;
    • @LIH 那么很可能您需要获取正确的路径,而不是相对路径。
    【解决方案3】:

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

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

    【讨论】:

    • 不是答案 - 没有必要重新发布答案。只需接受正确的。
    猜你喜欢
    • 2011-09-18
    • 2021-09-27
    • 1970-01-01
    • 2013-06-25
    • 2017-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多