显示文件下的子文件
void TCFindFile(CString FilePath,CListCtrl& m_dir_tree)
{
OutputDebugString("TCFindFile");
CFileFind find;
CString Dir = FilePath+"*.*";
BOOL res =find.FindFile(Dir);
//OutputDebugString(Dir);
if (!res)
{
OutputDebugString("DiskScanOver!");
return;
}
int i =1;
while(res)
{
CString Filename;
CString tmp; ////文件路径
res = find.FindNextFile();
if (find.IsDirectory() && !find.IsDots())//目录是文件夹
{
Filename = find.GetFileName();
tmp = Dir.Left(Dir.GetLength() - 3) + Filename;
tmp+="//";
int nIndex;
TCHAR Path[MAX_PATH+1];//TCHAR取代char MAX_PATH最长路径
nIndex=m_dir_tree.InsertItem(i,Filename);
GetWindowsDirectory(Path,MAX_PATH);
m_dir_tree.SetItemText(nIndex, 1, Path );
if (Filename == "Foxmail")
{
//执行后续操作
OutputDebugString(tmp);
OutputDebugString("GetPWDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD");
return;
}
}
}
i++;
}
通过上面的代码可以将c:\下的文件在List Control中显示,现在想点击文件下面弹出子文件代码该怎么改呢
[解决办法]
我怎么感觉文件目录这东西用treeView比较好呢。
[解决办法]
system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /ad c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。