VC 得到磁盘的空间(总的、已用的、剩余的)

    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文件放到执行文件的目录下的

 

你可能感兴趣的:(VC点滴)