最好能使用资源管理器或者Windows的文件夹浏览器打开
谢谢!!
又实例吗? 我不太懂 能不能给发一下 呵呵 谢谢你 maomaoliugang@163.com
用指定目录填充TREECTL递归代码
void CFileTreeDlg::AddFile(CString StrPath, HTREEITEM faItem )
//StrPath为传递过来的目录层次,本次函数调用中搜索的文件都是它的下一层的。
//faItem为传递过来的Tree节点,本次函数调用中添加的Tree节点都是它的子节点。
{
CFileFind OneFile;
CString FName, DirName;
BOOL BeWorking;
HTREEITEM NewItem;
DirName = StrPath+"\\*.*";
BeWorking = OneFile.FindFile( DirName );
while ( BeWorking ) { //BeWorking非零,指找了文件或目录
//查找同级的目录
BeWorking = OneFile.FindNextFile();
if ( OneFile.IsDirectory() && !OneFile.IsDots() ) //如果查找的结果是目录又不是".."或"."
{
//向Tree1中添加目录;
DirName = OneFile.GetFilePath();
FName = OneFile.GetFileTitle();
//IDC_TREE1
NewItem = m_Tree.InsertItem( FName, faItem ); //NewItem取得节点,其目的是为了下一层中
//添加节点方便,递归时把它传过去。
//进入下一层递归调用。
AddFile(DirName, NewItem);
}
//退出递归时,到了这里!!!
if ( !OneFile.IsDirectory() && !OneFile.IsDots() ) //如果查找结果是文件
{
//向Tree1中添加文件
FName = OneFile.GetFileTitle(); //注意这里用的是GetFileTitle,因为
//这里是添加文件。
m_Tree.InsertItem( FName, faItem );
}
//BeWorking = OneFile.FindNextFile();
}// end of while
OneFile.Close(); //记着用完CFileFild实例要关闭
}
在初使化处加上ADDFILE("C:\\",NULL);