【发布时间】:2020-06-12 07:28:07
【问题描述】:
我需要计算指定目录路径中的文件和目录。但我想排除 .git 文件夹和该文件夹内的文件不被计算在内。我试过了——
int maxCount = Directory.GetFiles(loadedDirectoryPath, "*.*", SearchOption.AllDirectories).Length + Directory.GetDirectories(loadedDirectoryPath, "*.*", SearchOption.AllDirectories).Length;
为了排除.git,我可以写-
Directory.GetDirectories(loadedDirectoryPath, "*.*", SearchOption.AllDirectories).Where(item => !item.EndsWith(".git")).ToArray().Length;
这将排除 .git 目录,但是如何防止 文件(存在于 .git 目录中)被计算在内?
据我所知,GetDirectories() 只处理文件夹而不处理文件,GetFiles() 只处理文件,而不关心 GetDirectories() 排除的目录。
【问题讨论】:
-
检查“项目”到底是什么,并适当地更新 Where 条件。
-
这些方法中没有任何内容可以为您进行过滤。您必须在结果中过滤掉任何您不想要的路径,或您将不得不多次调用才能只获取您想要的文件夹/文件。
标签: c# file-io getfiles getdirectories