用VisualC++6.0递归查找目录树

用VisualC++6.0递归查找目录树,第1张

用VisualC++6.0递归查找目录树,第2张

-在SDI项目中,通过使用CFileDialog和CFileFind类,不仅可以实现Windows桌面上已有的搜索功能
,还可以灵活扩展搜索条件。例如,下面的程序将在VisualC++6.0的
输出窗口中逐行输出c:\windows中所有长度小于500字节的只读文件:

# include < direct . h >/* contains
_ getcwd,_ chdir prototype */
void F0(){
char x[256],y[256];
CFileDialog FD(TRUE);
/*用真值*/
_getcwd(x,256)构造“文件打开”对话框;/*
当前工作目录存储在X数组中*/

如果(fd。domodal () = = idok) {
/*在CfileDialog的过程中,
首先选择c:\windows目录,
然后选择它的下一个普通文件,比如Notepad.exe,
或者输入一个不存在的文件,比如F0。
/*当前工作目录c:\windows存放在Y数组*/
f1(Y);/*用Y内容调用f1函数*/
}
_ chdir(x);/*当前工作目录被重置为X content */
}

void f1(CString x){
BOOL b;CFileFind f;
/*考虑到递归,只能使用局部变量*/
_ chdir(x);b=f.FindFile("*。*");
/*将当前工作目录设置为实参x,
然后检查其下的所有文件*/
while(b){
b = f . findnextfile();
if(f . is directory()){
/*当前文件是一个目录*/
if(!f . is dots())
{ f1(f . getfile path());
/*目录文件不是“.”还有“..”,并且
用完整路径*/
}
else
if(f . is readonly()& & f .
afx dump < < f . getfile path();
/*输出长度小于500字节的只读文件的文件*/
}
}
}

-程序正常完成后,输出窗口将显示执行结果。另外,用CmemoryState类检查后,
已经证明这个程序没有造成内存泄漏。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 用VisualC++6.0递归查找目录树

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情