2009年10月26日月曜日

IOUtilsユニットをつかってみる(その1)

Delphi2010で追加されたIOUtilsユニットを使ってファイルリスト
(正確にはファイル名のリスト)を取得するだけであれば、

TDirectory.GetFilesメソッドで簡単に取得できます。

Delphi Prism(.Net版)とほぼ同じ形でかけます



GetFilesメソッドはいくつかOverLoadの定義がありますが、

今回は、

function GetFiles(const Path: string;
const SearchPattern: string;
const SearchOption: TSearchOption): TStringDynArray; overload; static;


を使用した簡単なサンプルを作ってみました。

ここで、Pathは検索パス
    SearchPatternは、検索パターン(全検索は'*')
  SearchOptionは、
     サブディレクトリも検索するときはsoAllDirectories
     指定したディレクトリのみを検索するときは、soTopDirectoryOnly
を指定します。

以下、サンプルプログラム

  1. procedure TForm1.ButtonExecGetFileClick(Sender: TObject);  
  2. var  
  3. MyDir : IOUtils.TDirectory;  
  4.  FileList : TStringDynArray;  
  5.  FileName : String;  
  6. begin  
  7.   
  8. ListBox1.Clear;  
  9.   
  10. if Self.CheckBoxFindSubDir.Checked then  
  11.  begin  
  12.  FileList := MyDir.GetFiles(EditStartPath.Text,'*',TSearchOption.soAllDirectories);  
  13.  end  
  14.  else  
  15.  begin  
  16.  FileList := MyDir.GetFiles(EditStartPath.Text,'*.XLS',TSearchOption.soTopDirectoryOnly);  
  17.  end;  
  18.   
  19.  for FileName In FileList do  
  20.  begin  
  21.   ListBox1.Items.Add(FileName);  
  22.  end;  
  23.   
  24. end;  


と結構簡単にかけます。
(ただ、ファイル数が多いとなかなか帰ってこないです。)

0 件のコメント: