【问题标题】:Count total number of folders and files within a Folder [duplicate]计算文件夹中的文件夹和文件总数[重复]
【发布时间】:2017-12-25 13:33:01
【问题描述】:

我有 1 个目录。在此目录中,它包含 9 个文件夹(子目录)。每个文件夹(子目录)包含可变数量的文件夹(子子目录),并且在(子子目录)中它包含一些文件夹....等等....我尝试了这种方法,但我不知道如何扩展它因为变量子目录的数量。

        public static long GetDirectoryNumberOfFiles(string directory, bool includeSubDir)
        {
            long numberFiles = Directory.GetFiles(@directory).Length;

            string[] subfolderEntries = Directory.GetDirectories(directory);//result 9

            //i tried this, but without luck.
            var dirInfo =new DirectoryInfo(directory);
            int dirCount = dirInfo.GetDirectories().Length;//result 9


            if (includeSubDir)
            {
              for (int i = 0; i < subfolderEntries.Count(); i++)
              { numberFiles += Directory.GetFiles(subfolderEntries[i]).Length; }//result 38
            }

          return numberFiles;
    }

当我右键单击该目录时,它包含 23,026 个文件和 440 个文件夹。但是用这种方法,我得到了 38 个文件和 9 个文件夹。我知道它只计算子目录而不是目录中的所有文件夹。

【问题讨论】:

标签: c# winforms


【解决方案1】:

试试这个

int directoryCount = Directory.GetDirectories("yourpath", "*", SearchOption.AllDirectories).Length;
int fileCount = Directory.GetFiles("yourpath", "*", SearchOption.AllDirectories).Length;

SearchOption 在这里使用很重要。有关更多信息,请参阅 MSDN https://msdn.microsoft.com/en-us/library/ms143314(v=vs.110).aspx

【讨论】:

    【解决方案2】:

    如果需要,请使用 EnumerateDirectories(String, SearchOption)、EnumerateFiles(String, SearchOption) 以及系统目录和系统文件方法DirectoryInfo

    【讨论】:

      猜你喜欢
      • 2019-08-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-14
      • 1970-01-01
      • 2016-02-25
      • 1970-01-01
      • 2020-02-03
      相关资源
      最近更新 更多