可用空间大小信息

时间:2012-04-12 11:37:16

标签: c++

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

2 个答案:

答案 0 :(得分: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

我相信在不使用文件系统的情况下获取可用空间是不可能的,因为您需要识别字节序列何时是文件...(您需要确定您的块总数)硬盘,哪些块是为系统保留的,一个正在使用的块的标志和一个免费的标志,可能是更多相关的东西......)

我错了,但这是我的猜测......

我希望你明白......

=)

答案 1 :(得分:0)

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