2

我想知道,如何使用 C++ 在 Windows 中的驱动器中找到可用空间。我有一个目录路径作为输入,我想知道这个驱动器或这个目录是否有足够的空间来保存我的数据。主要限制是我应该只使用 C++,而不是 VC++ 或任何其他类型的 Windows 编程,因为这个应用程序必须以批处理模式与其他应用程序交互。

4

2 回答 2

3

如果您需要了解 Windows 上的可用空间,可以阅读以下内容:http:
//msdn.microsoft.com/en-us/library/windows/desktop/aa364937 (v=vs.85).aspx

在 POSIX 系统上,您可以试试这个: http: //pubs.opengroup.org/onlinepubs/009604499/basedefs/sys/statvfs.h.html

我相信在不使用文件系统的情况下获得可用空间是不可能的,因为您需要确定字节序列何时是文件......(您需要确定硬盘上的块总数,即块是为系统保留的,正在使用的块的标志和空闲的块的标志,可能还有更多相关的东西......)

我可能是错的,但这是我的猜测......

我希望你明白...

=)

于 2012-04-12T11:44:12.683 回答
0

一个可移植的解决方案是使用 Boost.Filesystem空间,它返回一个space_info带有相关信息的结构。

于 2012-05-09T13:51:32.493 回答