我有一个方法在顶层目录中搜索任何文件并返回如下计数:
public int AttachmentCountItemDirectory(string directoryPath)
{
int fileCount = 0;
if (Directory.Exists(directoryPath))
fileCount = Directory.GetFiles(directoryPath, "*", SearchOption.TopDirectoryOnly).Length;
return fileCount;
}
当目录中有1个或更多文件时,上述方法效果很好。我面临的问题是,当没有文件计数仍然 1 时出于某种奇怪的原因。我已启用显示隐藏文件,文件夹和驱动器,并且从下面的图片中可以清楚地看到没有文件。
我错过了一些明显的东西吗?有人能告诉我哪里出错了吗
答案 0 :(得分:1)
您发表了评论
是thumbs.db
所以回答原来的问题。
我的建议是应用过滤器来仅返回相关文件
我可以一次提供多个过滤器吗?我想申请的过滤器 是:pdf,doc,docx,xls,xlsx,jpeg,png
是的,您可以使用LINQ:
public int AttachmentCountItemDirectory(string directoryPath)
{
string[] attExt = {".pdf",".doc",".docx",".xls",".xlsx",".jpeg",".png"};
return Directory.EnumerateFiles(directoryPath)
.Count(f => attExt.Contains(Path.GetExtension(f), StringComparer.InvariantCultureIgnoreCase));
}
如果将无效路径传递给方法,则不会返回0。我抛出异常。