【问题标题】:how to display files inside directory如何在目录中显示文件
【发布时间】:2011-01-11 00:14:43
【问题描述】:

在这种情况下,我试图获取目录中的文件列表“c:\dir\”(当然我里面有文件),我想在 c# 中构建的控制台程序中显示这些文件的名称... .

最初我是这样做的……

static class Program
    {
        static void Main()
        {
            string[] filePaths = Directory.GetFiles(@"c:\dir\");
            Console.WriteLine();
            Console.Read();


        }
    }

如何查看这些文件的名称....... 任何帮助将不胜感激.....

谢谢。

(进一步我想知道是否有关于将这些文件路径发送到动态 html 页面的任何想法......任何一般概念如何做到这一点......)

【问题讨论】:

    标签: c# list directory


    【解决方案1】:

    如果“文件名”是指名称不是完整的路径

    string[] filePaths = Directory.GetFiles(@"c:\dir");
    for (int i = 0; i < filePaths.Length; ++i) {
        string path = filePaths[i];
        Console.WriteLine(System.IO.Path.GetFileName(path));
    }
    

    【讨论】:

    • 实际上我可以知道是否可以将这些路径动态发送到 html 文件...我的意思是我在控制台应用程序中看到的路径... C:\dir\a。 jpeg........... C:\dir\home.txt 等
    • 因此,如果您想显示“目录为空...”或类似的消息,您会使用 if/else 语句吗?如果是这样,如果是的话,标准是什么?我尝试将“if i == 0”作为我的 if 条件,但它不起作用。
    • @MattP:听起来你想检查if (filePaths.Length == 0)(在for 循环之外)?
    • 这正是我想要做的。非常感谢!
    【解决方案2】:

    遍历文件并一次打印一个:

    foreach(string folder in Directory.GetDirectories(@"C:\dir"))
    {
        Console.WriteLine(folder);
    }
    
    foreach(string file in Directory.GetFiles(@"C:\dir"))
    {
        Console.WriteLine(file);
    }
    

    【讨论】:

    • 但它没有显示文件夹名称,例如我有 5 个文件夹和 1 个 .jpeg 它只显示 .jpeg。
    • 使用 Directory.GetDirectories 也可以打印所有文件夹。我编辑了帖子以显示这一点。
    • GetFiles 返回一个 FileInfo 类型的数组,它应该是 foreach(FileInfo fi in Directory.GetFiles(@"C:\Dir")) { Console.WriteLine(file.Name);}跨度>
    • @tike: 那么你想要GetFileSystemEntries 而不是GetFiles
    • @bnkdev:你错了; Directory.GetFiles 返回一个字符串[]。 DirectoryInfo.GetFiles 方法返回一个 FileInfo[]。
    【解决方案3】:

    请记住,如果文件夹中有很多文件,则会出现内存问题。
    .Net 4.0 包含一个修复程序:C# directory.getfiles memory help

    【讨论】:

      【解决方案4】:
      foreach (string filename in filePaths) {
        Console.WriteLine(filename);
      }
      

      【讨论】:

        【解决方案5】:

        foreach(FileInfo f in Directory.GetFiles()) Console.Writeline(f.Name)

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-01-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多