获取磁盘使用空间和剩余空间

136 views 十二月 28, 04 by Timothy

char crDrv[3];
CStringArray strArray;
_ULARGE_INTEGER n64TotalNumberOfBytes,
n64TotalNumberOfFreeBytes;
__int64 n64TotalFree = 0,n64TotalSpace = 0;
float fTotalFree,fTotalSpace,fTempFree,fTempTotal;
ULONG lTotalFree = 0,lTotalSpace = 0,
lTempFree = 0,lTempTotal = 0;
CString strInfo;
BOOL bSuccess;

for(int n=2;n<=25;n++)
{
CString str;
str.Format(“%c:\\”,n+’A');
strcpy(crDrv,str);
UINT nDrvType = GetDriveType(crDrv);
switch(nDrvType)
{
case DRIVE_FIXED:
{
strArray.Add(crDrv);
break;
}
default:
{
break;
}
}
}

for(n = 0;n < strArray.GetSize();n ++)
{
bSuccess = SHGetDiskFreeSpace(strArray.GetAt(n),
NULL,&n64TotalNumberOfBytes,
&n64TotalNumberOfFreeBytes);
n64TotalSpace += n64TotalNumberOfBytes.QuadPart;
n64TotalFree += n64TotalNumberOfFreeBytes.QuadPart;

lTempTotal = (ULONG)(n64TotalNumberOfBytes.QuadPart/1024);
lTempFree = (ULONG)(n64TotalNumberOfFreeBytes.QuadPart/1024);
fTempTotal = (float)lTempTotal;
fTempTotal = fTempTotal/1024/1024;
fTempFree = (float)lTempFree;
fTempFree = fTempFree/1024/1024;

strInfo.Format(“%s 容量: %4.2fGB,可用空间: %4.2fGB.”,
strArray.GetAt(n),fTempTotal,fTempFree);
AfxMessageBox(strInfo);
}

lTotalSpace = (ULONG)(n64TotalSpace/1024);
lTotalFree = (ULONG)(n64TotalFree/1024);
fTotalSpace = (float)lTotalSpace;
fTotalSpace = fTotalSpace/1024/1024;
fTotalFree = (float)lTotalFree;
fTotalFree = fTotalFree/1024/1024;

strInfo.Format(“总容量: %4.2fGB,总共可用空间: %4.2fGB.”,
fTotalSpace,fTotalFree);
AfxMessageBox(strInfo);

分享到:

声明: 此Blog中的文章和随笔仅代表作者在某一特定时间内的观点和结论,对其完全的正确不做任何担保或假设
本站文章均采用 知识共享署名-相同方式共享3.0 协议进行授权,除非注明,本站文章均为原创,转载请注明转自 Timothy's Space 并应以链接形式标明本文地址!

你可能也对下列文章感兴趣

  • 没有相关文章!

Add your comment

3 Responses to "获取磁盘使用空间和剩余空间"

  1. zhangchong CHINA 说道:

    你好,
    请问你这个程序是用C语言写的吗?

  2. zhangchong CHINA 说道:

    谢谢!!

  3. zhangchong CHINA 说道:

    用C++怎么调用?


Leave a Reply

 您已输入0

(Ctrl+Enter)