procedure GetPromptVoxList(SLName,SLFile:TStringList;FPath:String); var sr: TSearchRec; FileAttrs: Integer; begin FileAttrs := faReadOnly + faHidden+ faSysFile+ faVolumeID+ faDirectory+faArchive+faAnyFile; if FindFirst(FPath+'*.*', FileAttrs, sr) = 0 then begin repeat //是目录 if (sr.Attr and faDirectory) = faDirectory then begin if (sr.Name<>'.') and (sr.Name<>'..') then begin GetPromptVoxList(SLName,SLFile,FPath+sr.Name+'\'); end; end else begin //是文件 SLName.Add(sr.Name); SLFile.Add(FPath+sr.Name); end; until FindNext(sr) <> 0; FindClose(sr); end; end; 自己去改造吧
這三個函數就可搞定
Win32FindFirst这类API函数
看MSDN就有的,比Delphi自带的支持更好_____________________
http://lysoft.7u7.net
var sr: TSearchRec;
FileAttrs: Integer;
begin
FileAttrs := faReadOnly + faHidden+ faSysFile+ faVolumeID+ faDirectory+faArchive+faAnyFile;
if FindFirst(FPath+'*.*', FileAttrs, sr) = 0 then begin
repeat
//是目录
if (sr.Attr and faDirectory) = faDirectory then begin
if (sr.Name<>'.') and (sr.Name<>'..') then begin
GetPromptVoxList(SLName,SLFile,FPath+sr.Name+'\');
end;
end else begin
//是文件
SLName.Add(sr.Name);
SLFile.Add(FPath+sr.Name);
end;
until FindNext(sr) <> 0;
FindClose(sr);
end;
end;
自己去改造吧