获取磁盘空间信息(十四)
本文讲述如何获取磁盘信息。
1. 创建一个对话框工程:DiskSpace
2. 添加一个List Control控件,用来显示信息。
3. 添加一个图标,用来显示每个盘。
4. OnInitDialog()添加以下实现:
m_disklist.SetExtendedStyle(LVS_EX_GRIDLINES);
m_disklist.InsertColumn(0,"磁盘驱动器",LVCFMT_LEFT,150);
m_disklist.InsertColumn(1,"驱动器大小",LVCFMT_LEFT,150);
imglist.Create(16,16,ILC_COLOR32|ILC_MASK,0,0);
imglist.Add(::AfxGetApp()->LoadIcon(IDI_DISK));
m_disklist.SetImageList(&imglist,LVSIL_SMALL);
DWORDsize;
size = ::GetLogicalDriveStrings(0,NULL);
if(size!= 0)
{
HANDLEheap = ::GetProcessHeap();
LPSTRlp = (LPSTR)HeapAlloc(heap,HEAP_ZERO_MEMORY,size*sizeof(TCHAR));
::GetLogicalDriveStrings(size*sizeof(TCHAR),lp);
while(*lp!=0)
{
m_disklist.InsertItem(0,lp,0);
lp = _tcschr(lp,0)+1;
}
}
ULARGE_INTEGERtotalsize;
ULARGE_INTEGERfreesize;
ULARGE_INTEGERavailablesize;
intnum = m_disklist.GetItemCount();
for(inti = 0;i<num;i++)
{
CStringstr,temp;
str = m_disklist.GetItemText(i,0);
::GetDiskFreeSpaceEx(str,&totalsize,&freesize,&availablesize);
temp.Format("%ld千字节",totalsize.QuadPart/1024);
m_disklist.SetItemText(i,1,temp);
}
完成,运行即可。