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