quint64 localset::getDiskFreeSpace(QString driver)
{
#if defined(Q_OS_WIN32)
LPCWSTR lpcwstrDriver=(LPCWSTR)driver.utf16();
ULARGE_INTEGER liFreeBytesAvailable, liTotalBytes, liTotalFreeBytes;
if( !GetDiskFreeSpaceEx( lpcwstrDriver, &liFreeBytesAvailable, &liTotalBytes, &liTotalFreeBytes) )
{
qDebug() << "ERROR: Call to GetDiskFreeSpaceEx() failed.";
return 0;
}
return (quint64) liTotalFreeBytes.QuadPart/1024/1024;
#else
int state;
struct statvfs vfs;
fsblkcnt_t block_size = 0;
fsblkcnt_t free_size;
state = statvfs("/",&vfs);
if(state < 0){
printf("read statvfs error!!!\n");
}
block_size = vfs.f_bsize;
free_size = vfs.f_bfree * block_size;
return free_size/1024/1024;
#endif
}
windows和linux下QT获取当前磁盘的剩余空间
于 2022-05-17 09:25:23 首次发布