计算文件夹中文件夹和文件的总数

时间:2017-07-20 03:47:25

标签: c# winforms

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

        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个文件夹。我知道它只计算子目录,但不计算目录中的所有文件夹。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

试试这个

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