我希望能够使用 C# 获取本地目录之一的大小。我试图避免以下情况(伪代码),尽管在最坏的情况下我将不得不解决这个问题:
int GetSize(Directory)
{
int Size = 0;
foreach ( File in Directory )
{
FileInfo fInfo of File;
Size += fInfo.Size;
}
foreach ( SubDirectory in Directory )
{
Size += GetSize(SubDirectory);
}
return Size;
}
基本上,是否有 Walk() 可用,以便我可以遍历目录树?这将节省遍历每个子目录的递归。
下面是获取 .net 4.0 中文件夹大小的一种非常简洁的方法。它仍然受到必须递归遍历所有文件的限制,但它不会加载潜在的巨大文件名数组,而且只有两行代码。确保使用命名空间System.IO
and System.Linq
.
private static long GetDirectorySize(string folderPath)
{
DirectoryInfo di = new DirectoryInfo(folderPath);
return di.EnumerateFiles("*.*", SearchOption.AllDirectories).Sum(fi => fi.Length);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)