有没有简单的方法来创建一个使用的类 IFormatProvider它写出一个用户友好的文件大小?
public static string GetFileSizeString(string filePath)
{
FileInfo info = new FileInfo(@"c:\windows\notepad.exe");
long size = info.Length;
string sizeString = size.ToString(FileSizeFormatProvider); // This is where the class does its magic...
}
Run Code Online (Sandbox Code Playgroud)
它应该导致字符串格式化为" 2,5 MB "," 3,9 GB "," 670字节 "等等.
使用C#,我找到了目录的总大小.逻辑是这样的:获取文件夹中的文件.总结总大小.查找是否有子目录.然后进行递归搜索.
我也尝试了另一种方法:使用FSO(obj.GetFolder(path).Size).这两种方法的时间差别不大.
现在的问题是,我在一个特定的文件夹中有成千上万的文件,它至少需要2分钟才能找到文件夹大小.此外,如果我再次运行程序,它会很快发生(5秒).我认为窗口正在缓存文件大小.
有什么方法可以减少我第一次运行程序时所花的时间吗?