MFC资源管理器树视图里 findfile(str)函数 执行前 参数文件路径str为什么后面加了个/*

voidCLeftView::OnInitialUpdate(){CTreeView::OnInitialUpdate();SHFILEINFOFileInfo;m_Tr... void CLeftView::OnInitialUpdate()
{
CTreeView::OnInitialUpdate();
SHFILEINFO FileInfo;
m_TreeImageList=(HIMAGELIST)SHGetFileInfo("C:\\",//添加系统图标
0,
&FileInfo,
sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX|SHGFI_SMALLICON);

GetTreeCtrl().SetImageList(CImageList::FromHandle(m_TreeImageList),TVSIL_NORMAL);

GetTreeCtrl().ModifyStyle(0,GetTreeCtrl().GetStyle() | TVS_HASBUTTONS | TVS_HASLINES | TVS_LINESATROOT | TVS_SINGLEEXPAND );
HTREEITEM RootItem=GetTreeCtrl().InsertItem("我的电脑",TVI_ROOT);
char buff[1024]={0};
GetLogicalDriveStrings(1024,buff);
char* pTemp=buff;
while(*pTemp!=0)
{
CString str;
switch(::GetDriveType(pTemp))
{
case DRIVE_FIXED:
str = "可移动磁盘";
break;
case DRIVE_REMOVABLE:
str = "可移动磁盘";
break;
case DRIVE_CDROM:
str = "光驱";
break;
default:
str = "未知磁盘";
break;
}
str = str+"("+pTemp+")";//如可移动磁盘(C:\)等
SHGetFileInfo(pTemp,
0,
&FileInfo,
sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX|SHGFI_SMALLICON);
HTREEITEM SubItem=GetTreeCtrl().InsertItem(str,FileInfo.iIcon,FileInfo.iIcon,RootItem,TVI_LAST);
char* newbuff= new char[1024];
strcpy(newbuff,pTemp);
GetTreeCtrl().SetItemData(SubItem,(DWORD)newbuff);
pTemp=pTemp+4;
}
g_hWnd2=m_hWnd;
}

void CLeftView::ExpandItem(CString str, HTREEITEM rootItem)//
{
CString tempstr=str;
str+="/*"; <<<<<<--------------疑问代码!!
CFileFind finder;
SHFILEINFO FileInfo;
BOOL BeWorking=finder.FindFile(str);
while(BeWorking)
{
BeWorking=finder.FindNextFile();
if(finder.IsDots())
{
continue;
}
CString filename=finder.GetFileName();
if(!finder.IsDirectory())//略去非目录
{
continue;
}
CString filepath=finder.GetFilePath();
SHGetFileInfo(filepath,
0,
&FileInfo,
sizeof(SHFILEINFO),
SHGFI_SYSICONINDEX|SHGFI_SMALLICON);
HTREEITEM SubItem=GetTreeCtrl().InsertItem(filename,FileInfo.iIcon,FileInfo.iIcon,rootItem,TVI_LAST);
char* newbuff =new char[1024];
strcpy(newbuff,filepath.GetBuffer(0));
GetTreeCtrl().SetItemData(SubItem,(unsigned long)newbuff);
}
}
展开
 我来答
bhtzu
2013-03-18 · TA获得超过1.1万个赞
知道大有可为答主
回答量:8088
采纳率:85%
帮助的人:4204万
展开全部
CFileFind 是文件查找,当你要查找所有文件和文件夹的时候,就用*来表示,如果要查找指定类型,则为*.txt等,或者也可以指定文件名,如1.txt

前面的/是文件名和目录之间的\吧,我觉得应该使用\\,不报错只是代码兼容性生效。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式