function TFrmMain.FindFiles(APath: string): Integer; var SearchRec:TSearchRec; FileAttrs: Integer; FileDriverDateTime,FileSaveDateTime:String; TempFile:String; begin Result:=0; FileAttrs:=faAnyFile; If FindFirst(APath+'\*.*',FileAttrs,SearchRec) = 0 then begin try If(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then begin If SearchRec.Attr = faDirectory then //目录继续搜索,递归 ReSult:=ReSult+FindFiles(APath+'\'+SearchRec.Name) Else begin //是文件则进行转发 try ReSult:=ReSult+1; TempFile:=APath+'\'+SearchRec.Name; Memo1.Lines.Add(TempFile); FileDriverDateTime:=GetFileDriverDateTime(TempFile); FileSaveDateTime:=GetFileSaveDateTime(TempFile); If MoreFilePathTransmitFile(TempFile,'',FileDriverDateTime,FileSaveDateTime) then ; DeleteFile(TempFile); finally end; end; end; While FindNext(SearchRec)=0 do begin If(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then begin If SearchRec.Attr = faDirectory then //目录继续搜索,递归 ReSult:=ReSult+FindFiles(APath+'\'+SearchRec.Name) Else begin //是文件则进行转发 try ReSult:=ReSult+1; TempFile:=APath+'\'+SearchRec.Name; Memo1.Lines.Add(TempFile); FileDriverDateTime:=GetFileDriverDateTime(TempFile); FileSaveDateTime:=GetFileSaveDateTime(TempFile); If MoreFilePathTransmitFile(TempFile,'',FileDriverDateTime,FileSaveDateTime) then ; DeleteFile(TempFile); finally end; end; end; end; finally FindClose(SearchRec); end; end; end;
var
SearchRec:TSearchRec;
FileAttrs: Integer;
FileDriverDateTime,FileSaveDateTime:String;
TempFile:String;
begin
Result:=0;
FileAttrs:=faAnyFile;
If FindFirst(APath+'\*.*',FileAttrs,SearchRec) = 0 then
begin
try
If(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
begin
If SearchRec.Attr = faDirectory then //目录继续搜索,递归
ReSult:=ReSult+FindFiles(APath+'\'+SearchRec.Name)
Else begin //是文件则进行转发
try
ReSult:=ReSult+1;
TempFile:=APath+'\'+SearchRec.Name;
Memo1.Lines.Add(TempFile);
FileDriverDateTime:=GetFileDriverDateTime(TempFile);
FileSaveDateTime:=GetFileSaveDateTime(TempFile);
If MoreFilePathTransmitFile(TempFile,'',FileDriverDateTime,FileSaveDateTime) then
;
DeleteFile(TempFile);
finally
end;
end;
end;
While FindNext(SearchRec)=0 do
begin
If(SearchRec.Name<>'.') and (SearchRec.Name<>'..') then
begin
If SearchRec.Attr = faDirectory then //目录继续搜索,递归
ReSult:=ReSult+FindFiles(APath+'\'+SearchRec.Name)
Else begin //是文件则进行转发
try
ReSult:=ReSult+1;
TempFile:=APath+'\'+SearchRec.Name;
Memo1.Lines.Add(TempFile);
FileDriverDateTime:=GetFileDriverDateTime(TempFile);
FileSaveDateTime:=GetFileSaveDateTime(TempFile);
If MoreFilePathTransmitFile(TempFile,'',FileDriverDateTime,FileSaveDateTime) then
;
DeleteFile(TempFile);
finally
end;
end;
end;
end;
finally
FindClose(SearchRec);
end;
end;
end;
解决了
顺便问下
怎么可以取得文件的属性 比如文件是系统文件 应用文件 快捷方式 等等
就象shelllistview里面显示的文件属性一样
lpFileInformation: TbyHandleFileInformation;
TempSystemTime:SYSTEMTIME;
HandleFile:THandle;
begin
{得到文件的创建时间,表示转储到微机的时间,返回值就是月(两位)日(两位)}
try
HandleFile:=FileOpen(TempFile,GENERIC_READ);
GetFileInformationByHandle(HandleFile,lpFileInformation);
FileTimeToSystemTime(lpFileInformation.ftLastWriteTime,TempSystemTime);
ReSult:=FormatFloat('00',TempSystemTime.wMonth)+FormatFloat('00',TempSystemTime.wDay);
FileClose(HandleFile);
Except
ReSult:=Copy(FormatDateTime('yy-mm-dd',now),4,2)+Copy(FormatDateTime('yy-mm-dd',now),7,2);
end;
end;