是这样的 这个函数先查找当前目录下的子目录 就是if ((SearchRec.Attr and faDirectory) = faDirectory) and (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then 这一段 '.'和'..'分别表示当前目录和上层目录 然后查找当前目录下的所有符合条件的文件 最后调用Searchfile(mainpath+subdir1.Strings[i]'\',Filename,filename1,foundresult);来递归查找子目录下的文件至于为什么查不全 还得再仔细看看 暂时没发现 hoho by the way 你用Delphi6了啊 呵呵 有LabeledEdit的日子真是幸福 我还在用5呢
就是if ((SearchRec.Attr and faDirectory) = faDirectory) and (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then 这一段
'.'和'..'分别表示当前目录和上层目录 然后查找当前目录下的所有符合条件的文件
最后调用Searchfile(mainpath+subdir1.Strings[i]'\',Filename,filename1,foundresult);来递归查找子目录下的文件至于为什么查不全 还得再仔细看看 暂时没发现 hoho
by the way 你用Delphi6了啊 呵呵 有LabeledEdit的日子真是幸福
我还在用5呢
你的流程是错误的 而且问题十分多啊
比如 这个函数的参数中有两个filename 原意应该是要查找的起始文件和中止文件 可是你的函数中 根本就没用到 而是从Edit中读取文件名 这样就失去递归函数的意义了
再者 你的k变量是全局变量 每次调用就加1 这样一次只能找到一个文件 而且在递归调用查找子目录的时候也会增加 这样如果有6个子目录 而且子目录中没有符合条件的文件 k的值就会跳跃 就会出现从2跳到8的情况