用 IOUtils 單元下的 TDirectory.GetFiles 擷取檔案清單太方便了;
DEMO下載IOUnit1
下面的例子只是 TDirectory.GetFiles 的典型應用…
unit Unit1;</p><p>interface</p><p>uses<br />Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,<br />Dialogs, StdCtrls;</p><p>type<br />TForm1 = class(TForm)<br />btn1: TButton;<br />btn2: TButton;<br />btn3: TButton;<br />mmo1: TMemo;<br />lbl1: TLabel;<br />procedure btn1Click(Sender: TObject);<br />procedure btn2Click(Sender: TObject);<br />procedure btn3Click(Sender: TObject);<br />private<br />{ Private declarations }<br />public<br />{ Public declarations }<br />end;</p><p>var<br />Form1: TForm1;</p><p>implementation</p><p>{$R *.dfm}<br />uses IOUtils, Types;</p><p>const path = 'D:/Program Files/Embarcadero/RAD Studio/7.0';</p><p>procedure TForm1.btn1Click(Sender: TObject);<br />var<br />dir: TDirectory; {這是個結構, 後面就不再聲明了, 將直接使用}<br />files: TStringDynArray; {TStringDynArray = array of string;}<br />str: string;<br />begin<br />files := dir.GetFiles(path);<br />mmo1.Clear;<br />for str in files do mmo1.Lines.Add(str);<br />end;</p><p>procedure TForm1.btn2Click(Sender: TObject);<br />var<br />files: TStringDynArray;<br />str: string;<br />begin<br />files := TDirectory.GetFiles(path, '*.txt');<br />mmo1.Clear;<br />for str in files do mmo1.Lines.Add(str);<br />end;</p><p>procedure TForm1.btn3Click(Sender: TObject);<br />var<br />files: TStringDynArray;<br />str: string;<br />begin<br />files := TDirectory.GetFiles(path, '*.txt', TSearchOption.soAllDirectories);<br />mmo1.Clear;<br />for str in files do mmo1.Lines.Add(str);<br />end;</p><p>end.