提取文件夹中文件的名称

时间:2017-06-06 05:58:23

标签: c# directory

我正在处理一个项目,我也想知道如何提取文件夹中文件的名称

e.g。我在" CatA"包含2个子文件夹的目录:

  • " CatAA"目录" ExpAA" - 内部的aaa.zip
  • " CatBB"目录" ExpBB" - bbb.zip里面

我的目标是在主要" CatA"中列出(获取文件名)aaa.zip和bbb.zip文件。文件。

string[] dirs = Directory.GetDirectories(@"C:\CatA");

        //checkedListBox1.Items.Insert(0, dirs.Length);

        for (int i = 0; i < dirs.Length - 1; i++)
        {
          //c# go a folder up
          dirs.
          var zipFiles = Directory.GetFiles(@"C:\Users\DLXP3B3\Desktop\tes", "*.zip");
          checkedListBox1.Items.Insert(i, zipFiles[i]);
        }

我已完成一些工作,但我不知道如何继续。任何想法,将不胜感激。谢谢。

3 个答案:

答案 0 :(得分:0)

您需要包含显示目录中所有子目录的选项:

var zipFiles = System.IO.Directory.GetFiles(@"C:\Users\DLXP3B3\Desktop\tes", "*.zip", System.IO.SearchOption.AllDirectories);

答案 1 :(得分:0)

实际上Directory.GetFiles为您提供了匹配文件的路径,如果您只想要文件名,则必须获取文件名,

var zipFiles = System.IO.Directory.GetFiles(@"C:\CatA", "*.zip", System.IO.SearchOption.AllDirectories)
                                  .Select(x=> Path.GetFileName(x))
                                  .ToArray();

现在zipFiles将包含扩展名为.zip

的所有文件的列表

答案 2 :(得分:0)

如果您需要父文件夹中所有文件的完整路径,请使用: -

var allFilesWithPath = Directory.GetFiles(@"C:\CatA", "*.*", SearchOption.AllDirectories);

如果您只需要文件名而不是完整路径,请使用以下代码: -

    var allFiles = Directory.GetFiles(@"C:\CatA", "*.*", SearchOption.AllDirectories)
        .Select(f => Path.GetFileName(f)).ToArray();