unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, FileList, XPtest; type TForm1 = class(TForm) Button1: TButton; Memo1: TMemo; Button2: TButton; Button3: TButton; Edit1: TEdit; CheckBox1: TCheckBox; Button4: TButton; procedure Button4Click(Sender: TObject); procedure FileList1FileFind(FileInfo: TFileFolderInformation; var FileFindAct: TFileFindAct); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure FormDestroy(Sender: TObject); procedure FormCreate(Sender: TObject); private FileList: TFileList; DestStrList: TStringList; public end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); begin Edit1.Text := ExtractFileDir(Application.ExeName); FileList := TFileList.Create(Self); DestStrList := TStringList.Create; end; procedure TForm1.Button4Click(Sender: TObject); procedure CreateTextFile(FullPath: String); var SL: TStringList; begin ForceDirectories(ExtractFileDir(FullPath)); SL := TStringList.Create; try SL.Text := 'test'; SL.SaveToFile(FullPath); finally SL.Free; end; end; begin ForceDirectories( Edit1.Text + '\test' ); CreateTextFile( Edit1.Text+'\test\aaa.txt' ); CreateTextFile( Edit1.Text+'\test\bbb.txt' ); CreateTextFile( Edit1.Text+'\test\folder1\ccc.txt' ); CreateTextFile( Edit1.Text+'\test\folder1\ddd.txt' ); CreateTextFile( Edit1.Text+'\test\folder2\eee.txt' ); ForceDirectories(Edit1.Text+'\test\folder2'); ForceDirectories(Edit1.Text+'\test\folder2\folder3'); ForceDirectories(Edit1.Text+'\test\folder2\folder4'); ForceDirectories(Edit1.Text+'\test\folder2\folder3\folder5'); CreateTextFile( Edit1.Text+'\test\folder2\folder4\fff.txt' ); //a〜fの6ファイルを作成 //folder1〜5の5ファイルを作成 end; procedure TForm1.FormDestroy(Sender: TObject); begin DestStrList.Free; FileList.Free; end; procedure TForm1.Button1Click(Sender: TObject); begin FileList.Directory := Edit1.Text + '\test'; FileList.FileListType := flNormal; FileList.OnFileFind := FileList1FileFind; FileList.DestStrings := DestStrList; DestStrList.Clear; Memo1.Lines.Add('リストアップ開始'); if CheckBox1.Checked then begin FileList.SubFolderList; end else begin FileList.List; end; Memo1.Lines.Add('ファイル/フォルダ個数:'+IntToStr(FileList.DestStrings.Count)); end; procedure TForm1.Button2Click(Sender: TObject); begin FileList.Directory := Edit1.Text + '\test'; FileList.FileListType := flFolder; FileList.OnFileFind := FileList1FileFind; FileList.DestStrings := DestStrList; DestStrList.Clear; Memo1.Lines.Add('リストアップ開始'); if CheckBox1.Checked then begin FileList.SubFolderList; end else begin FileList.List; end; Memo1.Lines.Add('ファイル/フォルダ個数:'+IntToStr(FileList.DestStrings.Count)); end; procedure TForm1.Button3Click(Sender: TObject); begin FileList.Directory := Edit1.Text + '\test'; FileList.FileListType := flAll; FileList.OnFileFind := FileList1FileFind; FileList.DestStrings := DestStrList; DestStrList.Clear; Memo1.Lines.Add('リストアップ開始'); if CheckBox1.Checked then begin FileList.SubFolderList; end else begin FileList.List; end; Memo1.Lines.Add('ファイル/フォルダ個数:'+IntToStr(FileList.DestStrings.Count)); end; procedure TForm1.FileList1FileFind(FileInfo: TFileFolderInformation; var FileFindAct: TFileFindAct); begin// Memo1.Lines.Add(FileInfo.FullPathName + #9 + IntToStr(FileInfo.Size) + #9 + DateTimeToStr(FileInfo.DateTime) ); end; end.