磁盘空间? (二手/免费/总计)我怎么得到这个?在C ++中...... 谢谢你的阅读。
答案 0 :(得分:9)
GetDiskFreeSpaceEx win32 API
答案 1 :(得分:8)
#include <sys/statvfs.h>
#include <iostream>
#include <cstring>
using namespace std;
int main( int argc, char *argv[] )
{
struct statvfs fiData;
if( argc < 2 ) {
cout <<"Usage, ./size dir1 dir2 ... dirN\n";
return(1);
}
//Lets loopyloop through the argvs
for( int i= 1 ; i<argc; i++ ) {
if((statvfs(argv[i],&fiData)) < 0 ) {
cout << "\nFailed to stat:" << argv[i];
} else {
cout << "\nDisk: " << argv[i];
cout << "\nBlock size: "<< fiData.f_bsize;
cout << "\nTotal no blocks: "<< fiData.f_blocks;
cout << "\nFree blocks: "<< fiData.f_bfree;
}
}
}
编译: g ++ -o size file.cpp
测试: ./size dir1 dir2
答案 2 :(得分:4)
statvfs for linux。
答案 3 :(得分:1)
原始Linux statfs()和fstatfs()系统调用的设计并未考虑到极大的文件大小。随后,Linux 2.6添加了使用新结构statfs64的新statfs64()和fstatfs64()系统调用。新结构包含与原始statfs结构相同的字段,但增加了各种字段的大小,以适应大文件大小。 见http://linux.die.net/man/2/statfs64