有很多关于如何获取目录大小的问题和答案 - 递归地求和文件的长度 - 很容易。
但是,我看到的所有答案都不完整。例如,在您递归迭代卷的地方,有一些目录会引发异常UnauthorizedAccessException
。我还注意到在 Win 7 中有超过 260 个字符的路径,这会引发PathTooLongException
.
所有这一切意味着,至少在 C# 中,您无法扫描 C:\ 驱动器并获取卷大小的真实数字,因为您必须跳过任何引发异常的目录或文件。
我正在寻找一种方法来获取存储在磁盘上给定目录的字节的正确、真实、准确的数字。我不在乎我是否必须走低级并编写一些 C++,或者调用 Win API。
如何做到这一点?谢谢。