我有以下方法来获取目录大小(以字节为单位):
public static long GetDirectorySize(string folderPath)
{
DirectoryInfo di = new DirectoryInfo(folderPath);
return di.EnumerateFiles("*", SearchOption.AllDirectories).Sum(fi => fi.Length);
}
我想添加以下功能 - 如果目录的大小大于 500 MB(或任何输入数字),我希望它返回 -1;
我可以通过将回报更改为:
var size = di.EnumerateFiles("*", SearchOption.AllDirectories).Sum(fi => fi.Length)
return (size <= 500*1024) ? size : -1;
这既不优雅也不高效,因为它遍历了.Sum(fi => fi.Length)
.
是否有一种优雅的方式来添加功能,允许调用者添加阈值?
注意:我试图避免迭代所有文件,如果有一个包含 100,000 个文件的文件夹并且第一个大于 500 MB,则继续迭代没有意义。