c++ - 计算 Windows 中的 NTFS 和 FAT 文件系统大小

标签 c++ file winapi size system

有谁知道如何单独计算文件系统占用的空间量?

我正在尝试计算磁盘中文件和目录占用的空间大小,而无需遍历整个磁盘。

这是一个 C++ 示例:

ULARGE_INTEGER freeBytesAvailable, totalNumberOfBytes, totalNumberOfFreeBytes;
GetDiskFreeSpaceEx(NULL, &freeBytesAvailable, &totalNumberOfBytes, &totalNumberOfFreeBytes);
mCurrentProgress = 0;
mTotalProgress = totalNumberOfBytes.QuadPart - totalNumberOfFreeBytes.QuadPart;

但问题是我需要排除文件系统的大小,但我不知道是否可能或者是否有 API 来获取此信息。

最佳答案

没有意义。在 NTFS 上,小文件存储在 目录中。我的意思是,它们是内联的。保存文件名的同一扇区也保存文件内容。因此,您不能将该扇区算作“用于文件”或“用于文件系统开销”。

关于c++ - 计算 Windows 中的 NTFS 和 FAT 文件系统大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7487330/

相关文章:

c++ - C++内存地址的奇怪现象

java - 使用 Runtime.exec 未打开我的 xls 文件

c++ - 在弹出窗口中管理 CEF 客户区的窗口消息

c++ - 如何使用 mySQL 进行本地文件存储?

c++ - Hook ntdll.dll 调用的问题

C++ win32 Api资源文件

c++ - 在 Ubuntu 14.04 上编译 EOS 时缺少 C++ std 库方法和其他错误?

c++ - C++中的算术溢出添加了2个SWORD

c++ - 从文件中读取整数,中间有一个字符串

file - 钛从流中保存文件