VC 獲取磁碟碟符剩餘空間,CJSON格式輸出
void GetPlace(char *datajson)
{
ULARGE_INTEGER nFreeBytesAvailable;
ULARGE_INTEGER nTotalNumberOfBytes;
ULARGE_INTEGER nTotalNumberOfFreeBytes;
DWORD msg = 1;
DWORD statue = 0;
WCHAR Drive[MAX_PATH] = {0};
char ch[3] = "c";
char FreePlace[1024] = {0};
char TotalPlace[1024] = {0};
GetLogicalDriveStrings(MAX_PATH, Drive);
wstring myDrive = L"";
int i = 0;
cJSON *root = cJSON_CreateObject();
cJSON *FreeP = cJSON_CreateArray();
cJSON *TotalP = cJSON_CreateArray();
while (Drive[i] != '\0' || Drive[i+1] != '\0')//搜尋陣列嘗試得到碟符資訊
{
myDrive = Drive[i];
myDrive = myDrive + L":";
i+= 4;
msg = GetDiskFreeSpaceEx(myDrive.c_str(),&nFreeBytesAvailable,&nTotalNumberOfBytes,&nTotalNumberOfFreeBytes);
statue = GetLastError();
if (msg)
{
cJSON *tempF = cJSON_CreateObject();
cJSON *tempT = cJSON_CreateObject();
double Totalspace = nTotalNumberOfBytes.QuadPart/1024./1024./1024.;//得到磁碟總空間,單位為G
char get_Totalfree[50] = {0};
sprintf(get_Totalfree,"%.2lf",Totalspace);
cJSON_AddItemToObject(tempF,"disk",cJSON_CreateString(ch));
cJSON_AddItemToObject(tempF,"vale",cJSON_CreateString(get_Totalfree));
cJSON_AddItemToArray(FreeP,tempF);
double Freespace = nTotalNumberOfFreeBytes.QuadPart/1024./1024./1024.;//得到磁碟剩餘空間,單位為G
char get_free[50] = {0};
sprintf(get_free,"%.2lf",Freespace);
cJSON_AddItemToObject(tempT,"disk",cJSON_CreateString(ch));
cJSON_AddItemToObject(tempT,"vale",cJSON_CreateString(get_free));
cJSON_AddItemToArray(TotalP,tempT);
}
ch[0]++;
}
char GetMsg[3] ={0};
sprintf(GetMsg,"%d",msg);
cJSON_AddNumberToObject(root,"status:",statue);
cJSON_AddStringToObject(root,"GetDiskMsg",GetMsg);
cJSON_AddItemToObject(root,"FreePlace",FreeP);
cJSON_AddItemToObject(root,"TotalPlace",TotalP);
char getdataF[1024] = {0};
strcpy(datajson ,cJSON_PrintUnformatted(root));
cJSON_Delete(root);
//cJSON_Print(root));
}
///////////////////////////////////////
輸出:
{
"status:": 0,
"GetDiskMsg": "1",
"FreePlace": [{
"disk": "c",
"vale": "80.00"
}, {
"disk": "d",
"vale": "80.00"
}, {
"disk": "e",
"vale": "80.00"
}, {
"disk": "f",
"vale": "95.51"
}],
"TotalPlace": [{
"disk": "c",
"vale": "22.71"
}, {
"disk": "d",
"vale": "0.29"
}, {
"disk": "e",
"vale": "1.65"
}, {
"disk": "f",
"vale": "2.93"
}]
}