// ========================================================= =========================================
//フォルダー内のファイルをトラバースし、
//使用する手順
//_getFileList(listbox1.items、 'c:/*。doc');
// _getFileList(mytstringList、 'c:/*。exe');
// ========================================================= =========================================
手順tform1._getFileList(Astrings:tstrings; asourfile:string);
var sour_path、sour_file:string;
tmplist:tstringlist;
FileRec:TsearchRec;
始める
sour_path:= extractfilepath(asourfile);
sour_file:= extractfilename(asourfile);
DirectoryExists(Sour_Path)ではない場合
始める
Astrings.Clear;
出口;
終わり;
tmplist:= tstringlist.create;
tmplist.clear;
findfirst(sour_path+sour_file、faanyfile、filerec)= 0の場合
繰り返す
if((filerec.attr and fadirectory)= 0)then
始める
tmplist.add(sour_path+filerec.name)
終わり;
findnext(filerec)<> 0まで;
sysutils.findclose(filerec);
Astrings.Assign(tmplist);
tmplist.free;
終わり;
// ========================================================= =========================================
//特定のフォルダーとサブフォルダーの下の特定のファイルを通過する、
//使用する手順
//_getFileList(listbox1.items、 'c:/'、 '*.doc');
// _getFileList(mytstringList、 'c:/'、 '*.exe');
// ========================================================= =========================================
手順_getFileList(Astrings:Tstrings; Asourfile、
ファイル名:文字列);
var sour_path、sour_file:string;
tmplist:tstringlist;
FileRec、SubfileRec:TsearchRec;
I:整数;
始める
rightstr(trim(asourfile)、1)<> '/' thenの場合
sour_path:= trim(asourfile) + '/'
それ以外
sour_path:= trim(asourfile);
sour_file:= filename;
DirectoryExists(Sour_Path)ではない場合
始める
Astrings.Clear;
出口;
終わり;
tmplist:= tstringlist.create;
tmplist.clear;
findfirst(sour_path+'*。*'、faanyfile、fileRec)= 0の場合
繰り返す
if((filerec.attr and fadirectory)<> 0)then
始める
if((filerec.name <> '。')and(filerec.name <> '..'))then
_GetFileList(Astrings、Sour_Path + FileRec.Name + '/'、Sour_File);
終わり
それ以外
findFirst(sour_path + filename、faanyfile、subfilerec)= 0の場合
繰り返す
if((subfilerec.attr and fadirectory)= 0)then
tmplist.add(sour_path+subfilerec.name);
findnext(subfilerec)<> 0まで;
findnext(filerec)<> 0まで;
sysutils.findclose(filerec);
i:= 0 to tmplist.count -1 do
Astrings.add(tmplist.strings [i]);
tmplist.free;
終わり;