■ Tips [Delphi] 3-3
 Delphi - Delphiでちょっと使える子ネタ集
 第3回 「再帰対応関数とファイル列挙」

どうも、お久しぶりです。TipsのPHP化しておきながら内容を更新しないのはどういうことかと。OFFで仕事がやっと一段落しましたので、再開します。

 3-3 単フォルダでのファイル列挙

前章のファイル列挙関数を使って指定したディレクトリ*1に存在するファイルを列挙してみます。

function CreateList(Root,WildCard:String):TStringList;
var
 F:TSearchRec;
 S:TStringList;
begin
 S:=TStringList. Create;
 if FindFirst(Root+'\'+WildCard,faAnyFile,F)=0 then
 begin
  if not ((F.Name='..') or (F.Name='.')) then
  if (F.Attr and faDirectory>0) then
  begin
   S.Add('<'+F.FindData.cFileName+'>,'+SizeStr(F.Size));
  end
  else
  begin
   S.Add(F.FindData.cFileName+','+SizeStr(F.Size));
  end;
  while FindNext(F)=0 do
  begin
   if not ((F.Name='..') or (F.Name='.')) then
   if (F.Attr and faDirectory>0)then
   begin
    S.Add('<'+F.FindData.cFileName+'>,'+SizeStr(F.Size));
   end
   else
   begin
    S.Add(F.FindData.cFileName+','+SizeStr(F.Size))
   end;
  end;
 end;
 FindClose(F);
 Result:=S;
end;

関数を実行するには、ファイル列挙を行いたいディレクトリとワイルドカードを指定します。全てのファイルを検索したい場合には'*.*'を指定します。

 PREVIOUS