CString CurDiskNo; //当前录像的盘符号
CString TotalDiskSize; //当前录像盘的总大小
CString FreeDiskSize; //当前录像盘和剩余空间
char cName[4 * m_iMaxCount] = {0};
char sDiskPath[4 * m_iMaxCount] = {0};
GetModuleFileName(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文件放到执行文件的目录下的