//============================================================================== //拷贝目录(包括子目录一起拷贝)************************************************ //============================================================================== procedure XCopyDir(SourceDir, TargetDir: string); var DirInfo: TSearchRec; DosError: Integer; begin DosError := FindFirst(SourceDir+'\*.*', FaAnyfile, DirInfo); if not DirectoryExists(TargetDir) then ForceDirectories(TargetDir); while DosError=0 do begin if ((DirInfo.Attr and FaDirectory)=faDirectory) and (DirInfo.Name<>'.') and (DirInfo.Name<>'..') then XCopyDir(SourceDir + '\' + DirInfo.Name, TargetDir + '\' + DirInfo.Name); {$IF DEFINED(WIN32) AND DECLARED(UsingVCL)} if ((DirInfo.Attr and FaDirectory)<>FaDirectory) and ((DirInfo.Attr and FaVolumeID)<>FaVolumeID) {$ELSE} if ((DirInfo.Attr and FaDirectory)<>FaDirectory) {$IFEND} then CopyFile(PChar(SourceDir + '\' + DirInfo.Name), PChar(TargetDir + '\' + DirInfo.Name), false); DosError := FindNext(DirInfo); end; SysUtils.FindClose(DirInfo); end;
下面这段代码可以拷贝一个目录中的所有文件到另外一个目录内,不包括子目录,有兴趣的朋友可继续.推荐采有递归的算法: var ODir,NDir:string; //分别为原始目录和新目录 FsearchRec:TsearchRec;//文件的属性类 findresult:integer;//查询文件的结果值为整型,为零时找到 begin odir:='d:\ios\';//举个例子,ODIR为一需要拷贝文件的目录 ndir:='d:\bbb\';//ndir为新的需存放拷贝后文件的目录 FindResult:=findfirst(odir+'*.*',faAnyFile+faHidden+faReadOnly,FsearchRec); try while findresult=0 do begin copyfile(pchar(odir+fsearchrec.Name),pchar(ndir+fsearchrec.Name),true); findresult:=findnext(fsearchrec); end; except showmessage('test');//测试用 end;end;
下面这段代码可以拷贝一个目录中的所有文件到另外一个目录内,不包括子目录,有兴趣的朋友可继续.推荐采有递归的算法: var ODir,NDir:string; //分别为原始目录和新目录 FsearchRec:TsearchRec;//文件的属性类 findresult:integer;//查询文件的结果值为整型,为零时找到 begin odir:='d:\ios\';//举个例子,ODIR为一需要拷贝文件的目录 ndir:='d:\bbb\';//ndir为新的需存放拷贝后文件的目录 FindResult:=findfirst(odir+'*.*',faAnyFile+faHidden+faReadOnly,FsearchRec); try while findresult=0 do begin copyfile(pchar(odir+fsearchrec.Name),pchar(ndir+fsearchrec.Name),true); findresult:=findnext(fsearchrec); end; except showmessage('test');//测试用 end;end;
copyfile(pchar(filename),pchar(otherfilename),false);
//拷贝目录(包括子目录一起拷贝)************************************************
//==============================================================================
procedure XCopyDir(SourceDir, TargetDir: string);
var DirInfo: TSearchRec;
DosError: Integer;
begin
DosError := FindFirst(SourceDir+'\*.*', FaAnyfile, DirInfo);
if not DirectoryExists(TargetDir) then ForceDirectories(TargetDir);
while DosError=0 do
begin
if ((DirInfo.Attr and FaDirectory)=faDirectory) and (DirInfo.Name<>'.') and (DirInfo.Name<>'..')
then XCopyDir(SourceDir + '\' + DirInfo.Name, TargetDir + '\' + DirInfo.Name);
{$IF DEFINED(WIN32) AND DECLARED(UsingVCL)}
if ((DirInfo.Attr and FaDirectory)<>FaDirectory) and ((DirInfo.Attr and FaVolumeID)<>FaVolumeID)
{$ELSE}
if ((DirInfo.Attr and FaDirectory)<>FaDirectory)
{$IFEND}
then CopyFile(PChar(SourceDir + '\' + DirInfo.Name), PChar(TargetDir + '\' + DirInfo.Name), false);
DosError := FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);
end;
ODir,NDir:string; //分别为原始目录和新目录
FsearchRec:TsearchRec;//文件的属性类
findresult:integer;//查询文件的结果值为整型,为零时找到
begin
odir:='d:\ios\';//举个例子,ODIR为一需要拷贝文件的目录
ndir:='d:\bbb\';//ndir为新的需存放拷贝后文件的目录
FindResult:=findfirst(odir+'*.*',faAnyFile+faHidden+faReadOnly,FsearchRec);
try
while findresult=0 do
begin
copyfile(pchar(odir+fsearchrec.Name),pchar(ndir+fsearchrec.Name),true);
findresult:=findnext(fsearchrec);
end;
except
showmessage('test');//测试用
end;end;
ODir,NDir:string; //分别为原始目录和新目录
FsearchRec:TsearchRec;//文件的属性类
findresult:integer;//查询文件的结果值为整型,为零时找到
begin
odir:='d:\ios\';//举个例子,ODIR为一需要拷贝文件的目录
ndir:='d:\bbb\';//ndir为新的需存放拷贝后文件的目录
FindResult:=findfirst(odir+'*.*',faAnyFile+faHidden+faReadOnly,FsearchRec);
try
while findresult=0 do
begin
copyfile(pchar(odir+fsearchrec.Name),pchar(ndir+fsearchrec.Name),true);
findresult:=findnext(fsearchrec);
end;
except
showmessage('test');//测试用
end;end;