procedure searchfile(path:string);//注意,path后面要有'\'; var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*',faAnyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') and (SearchRec.Attr<>faDirectory) then ListBox1.Add(SearchRec.Name); found:=FindNext(SearchRec); end; FindClose(SearchRec); end;
//===============================================================
上面一个只获取当前目录下所有文件,如果要获取该目录下的子目录的文件,看下面 procedure SearchFile(path:string); var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*',faAanyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.name<>'..) and (SearchRec.Name=faDirectory) then SearchFile(SearchRec.Name+'\') else LisBox1.Add(SearchRec.Name); found:=FindNext(SearchREc); end; FindClose(SearchRec); end; //===================================================================
第二个函数的 SearchRec.Name=faDirectory 错了
procedure TForm2.SearchFile(path:string; strList: TStrings); var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*', faAnyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.name<>'..') and ((SearchRec.Attr and faDirectory) <> 0) then SearchFile(path + SearchRec.Name + '\', strList) else strList.Add(path + SearchRec.Name); found:=FindNext(SearchREc); end; FindClose(SearchRec); end;
procedure searchfile(path:string);//注意,path后面要有'\'; var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*',faAnyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.Name<>'..') and (SearchRec.Attr<>faDirectory) then ListBox1.Add(SearchRec.Name); found:=FindNext(SearchRec); end; FindClose(SearchRec); end;
//===============================================================
上面一个只获取当前目录下所有文件,如果要获取该目录下的子目录的文件,看下面 procedure SearchFile(path:string); var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*',faAanyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.name<>'..) and (SearchRec.Name=faDirectory) then SearchFile(SearchRec.Name+'\') else LisBox1.Add(SearchRec.Name); found:=FindNext(SearchREc); end; FindClose(SearchRec); end; //===================================================================
第二个函数的 SearchRec.Name=faDirectory 错了
procedure TForm2.SearchFile(path:string; strList: TStrings); var SearchRec:TSearchRec; found:integer; begin found:=FindFirst(path+'*.*', faAnyFile,SearchRec); while found=0 do begin if (SearchRec.Name<>'.') and (SearchRec.name<>'..') and ((SearchRec.Attr and faDirectory) <> 0) then SearchFile(path + SearchRec.Name + '\', strList) else strList.Add(path + SearchRec.Name); found:=FindNext(SearchREc); end; FindClose(SearchRec); end;
|
请发表评论