VC如何得到磁盘的剩余空间
发布网友
发布时间:2022-04-23 13:18
我来回答
共2个回答
热心网友
时间:2023-08-17 22:20
得到磁盘方法如下:
CString CurDiskNo; //当前录像的盘符号
CString TotalDiskSize; //当前录像盘的总大小
CString FreeDiskSize; //当前录像盘和剩余空间
char cName[4 * m_iMaxCount] = {0};
char sDiskPath[4 * m_iMaxCount] = {0};
GetMoleFileName(NULL, cName, sizeof(cName)); //得到当前运行程序的路径
CString sSettingFile;
sSettingFile.Format("%s", cName);
sSettingFile = sSettingFile.Left(sSettingFile.ReverseFind('//'));
sSettingFile = sSettingFile + "//" + "Setting.ini";
//得到配置文件的全路径,录像盘的盘符保存在Setting.ini中
GetPrivateProfileString("disk", "path", NULL, sDiskPath, sizeof(sDiskPath), sSettingFile);
//从配置文件中得到盘符
char DiskName[4];
DiskName[0] = sDiskPath[0];
DiskName[1] = sDiskPath[1];
DiskName[2] = sDiskPath[2];
DiskName[3] = '/0';
ULARGE_INTEGER lpuse;
ULARGE_INTEGER lptotal;
ULARGE_INTEGER lpfree;
GetDiskFreeSpaceEx(DiskName,&lpuse,&lptotal,&lpfree);
//得到DiskName盘符的的总容量、已用空间大小、剩余空间大小
TotalDiskSize.Format("总空间:%4.2fGB",lptotal.QuadPart/1024.0/1024.0/1024.0);
FreeDiskSize.Format("可用空间:%4.2fGB",lpfree.QuadPart/1024.0/1024.0/1024.0);
CurDiskNo.Format("当前磁盘:%s",sDiskPath);
Setting.ini文件内容如下:
[package]
time=1
[disk]
path=E:/
那么上面的DiskName就是 E:/ 得到的就是E盘的空间大小
备注:要把Setting.ini文件放到执行文件的目录下。
热心网友
时间:2023-08-17 22:20
VC声明 BOOL GetDiskFreeSpace( LPCTSTR lpRootPathName, //rootpath LPDWORD lpSectorsPerCluster, //sectorspercluster LPDWORD lpBytesPerSector ,//bytespersector LPDWORD lpNumberOfFreeClusters, //freeclusters LPDWORD lpTotalNumberOfClusters //totalclusters ); 功能说明: 该函数是获取指定磁盘的信息(包括剩余空间的信息) 函数不能获取到卷的大小超过2GB的磁盘的信息,如果要获得可以使用GetDiskFreeSpaceEx函数;来实现 参数说明:lpRootPathName,磁盘的跟目录,如果设置为空,函数就使用当前目录作为这个参数传入,如果指定的是一个UNC名的话,文件名的最后必须带上一个反斜杠 lpSectorsPerCluster, 指定每个簇的扇区数目 lpBytesPerSector 指定每个扇区的字节数目 lpNumberOfFreeClusters, 磁盘总的空闲簇数目 lpTotalNumberOfClusters 磁盘总的簇数目