MFC写的资源管理器,含注释
帖点代码片段出来
// 获取盘符到目录树,作为根目录下一级节点
void CwinResManagerDlg::GetLogicalDrives(HTREEITEM hRoot)
{
size_t szAllDrivesStrings = GetLogicalDriveStrings(0,NULL); //获取驱动器字符长度
char* pDriveStrings = new char[szAllDrivesStrings + sizeof(_T(""))]; //定义字符串存储驱动器字符pDriveStrings
GetLogicalDriveStrings((DWORD)szAllDrivesStrings,pDriveStrings); //获取驱动器字符到pDriveStrings
//截取单个驱动器字符出来添加到目录树上
//定义临时字符指针指向驱动器字符信息
//(为了最后可以释放驱动器字符串方便,如果直接移动字符串指针,后面调用delete释放字符串资源的时候会报错)
char* pTempDrive = pDriveStrings;
size_t szDriveString = strlen(pTempDrive);
while(szDriveString>0)
{
m_Tree.InsertItem(pTempDrive,hRoot); //加载解析后的一个驱动器信息到目录树
pTempDrive += szDriveString + 1;
szDriveString = strlen(pTempDrive);
}
delete pDriveStrings;
}
1