delphi 获取一个文件夹下的所有文件
2022-10-09 11:30:17 作者:admin
本文整理自网络,侵删。

获取一个文件夹下的所有文件//不包括文件夹里面的文件// 注意,path后面不要有要有'\';// Memo1.Lines := Searchfile('C:\Users\Admin\Desktop\名人格言\Win32\Release\Data');function Searchfile(path: string): TStringList;var SearchRec: TSearchRec; found: integer;begin Result := TStringList.Create; found := FindFirst(path + '\' + '*.*', faAnyFile, SearchRec); while found = 0 do begin if (SearchRec.Name <> '.') and (SearchRec.Name <> '..') and (SearchRec.Attr <> faDirectory) then Result.Add(SearchRec.Name); found := FindNext(SearchRec); end; FindClose(SearchRec);end;
获取一个文件夹下的所有文件//包括文件夹里面的文件uses Masks;
// procedure TForm1.Button1Click(Sender: TObject);// begin// Memo1.Lines.Clear;// GetFileListEx('Z:\', '*.*', Memo1.Lines, False);// Caption:=IntToStr(Memo1.Lines.count);// end;//// procedure TForm1.Button2Click(Sender: TObject);// begin//// Memo1.Lines.Clear;// GetFileListEx('Z:\', '*.cs', Memo1.Lines, true);/// /GetFileListEx('Z:\', '*.cs;*.txt', Memo1.Lines, true);// Caption:=IntToStr(Memo1.Lines.count);// end;
// 遍历目录及子目录procedure GetFileListEx(FilePath, ExtMask: string; FileList: TStrings; SubDirectory: Boolean = True); function Match(FileName: string; MaskList: TStrings): Boolean; var i: integer; begin Result := False; for i := 0 to MaskList.Count - 1 do begin if MatchesMask(FileName, MaskList[i]) then begin Result := True; break; end; end; end;
var FileRec: TSearchRec; MaskList: TStringList;begin if DirectoryExists(FilePath) then begin if FilePath[Length(FilePath)] <> '\' then FilePath := FilePath + '\'; if FindFirst(FilePath + '*.*', faAnyFile, FileRec) = 0 then begin MaskList := TStringList.Create; try ExtractStrings([';'], [], PChar(ExtMask), MaskList); FileList.BeginUpdate; repeat if ((FileRec.Attr and faDirectory) <> 0) and SubDirectory then begin if (FileRec.Name <> '.') and (FileRec.Name <> '..') then GetFileListEx(FilePath + FileRec.Name + '\', ExtMask, FileList); end else begin if Match(FilePath + FileRec.Name, MaskList) then FileList.Add( { FilePath + } FileRec.Name); end; until FindNext(FileRec) <> 0; FileList.EndUpdate; finally MaskList.Free; end; end; FindClose(FileRec); end;end;
procedure TForm1.FormCreate(Sender: TObject);begin Memo1.Lines.Clear; GetFileListEx('C:\Users\Admin\Desktop\名人格言\Win32\Release\Data', '*.txt',Memo1.Lines, False);end;
猜你喜欢
联络方式:
400-123-789
邮箱:xiachao@163.com
Q Q:12345678
微信公众号
微信二维码