unit FindFileUnt;
interface
uses SysUtils,TntClasses,TntSysUtils;
procedure FindFile(const filespec: WideString;TmpList:TTntStringList;bSubDirectory:boolean);
implementation
procedure FindFile(const filespec: WideString;TmpList:TTntStringList;bSubDirectory:boolean);
procedure RFindFile(const folder: WideString);
var
SearchRec: TSearchRecW;
begin
if WideFindFirst(folder +'*.*' , faAnyFile , SearchRec)=0 then
begin
try
repeat
if (SearchRec.Attr and faDirectory = 0) or (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
if widefileexists(folder + SearchRec.Name) then
TmpList.Add(folder + SearchRec.Name);
until wideFindNext(SearchRec) <> 0;
except
WideFindClose(SearchRec);
raise;
end;
WideFindClose(SearchRec);
end;
if bSubDirectory then
begin
if WideFindFirst(folder + '*.*', faAnyFile Or faDirectory, SearchRec) = 0 then
begin
try
repeat
if ((SearchRec.Attr and faDirectory) <> 0) and (SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
RFindFile(folder + SearchRec.Name + '\');
until WideFindNext(SearchRec) <> 0;
except
WideFindClose(SearchRec);
raise;
end;
WideFindClose(SearchRec);
end;
end;
end;
begin
try
RFindFile(WideExtractFilePath(filespec));
except
raise;
end;
end;
end.
Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号
执行时间: 0.069685935974121 seconds