用Delphi怎么把一个文件夹复制到另外一个目录?

DelUser 2002-06-17 12:31:03
如我现在要把D:\Table复制到E:\Table怎样操作?
...全文
741 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
BraveYang 2002-06-17
  • 打赏
  • 举报
回复
调用Windows提供的文件操作操作接口
procedure TCommFunction.CopyDirectoryTree(AHandle: THandle; AFromDir,
AToDir: string);
var
SHFileOpStruct:TSHFileOpStruct;
FromDir,ToDir:PChar;
begin
GetMem(FromDir,Length(AFromDir)+2);
try
GetMem(ToDir,Length(AToDir)+2);
try
FillChar(FromDir^,Length(AFromDir)+2,0);
FillChar(ToDir^,Length(AToDir)+2,0);
StrCopy(FromDir,PChar(AFromDir));
StrCopy(ToDir,PChar(AToDir));
with SHFileOpStruct do
begin
Wnd:=AHandle;
wFunc:=FO_COPY;
pFrom:=PChar(AFromDir);
pTo:=PChar(AToDir);
fFlags:=FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
fAnyOperationsAborted:=False;
hNameMappings:=nil;
lpszProgressTitle:=nil;
end;
if SHFileOperation(SHFileOpStruct)<>0 then
RaiseLastWin32Error;
finally
FreeMem(ToDir,Length(AToDir)+2);
end;
finally
FreeMem(FromDir,Length(AFromDir)+2);
end;
end;
luoweicaisd 2002-06-17
  • 打赏
  • 举报
回复
参考一下
复制目录
procedure TForm1.Button1Click(Sender: TObject);
var
DirInfo: TSearchRec;
r : Integer;
begin
if SaveDialog1.Execute then
begin
if CreateDir(SaveDialog1.FileName)= false then
ShowMessage('不能创建目录:'+SaveDialog1.FileName);
r := FindFirst(ExtractFilePath(Application.Exename)+'dbf\*.*', FaAnyfile, DirInfo);
while r = 0 do
begin
if ((DirInfo.Attr and FaDirectory <> FaDirectory) and
(DirInfo.Attr and FaVolumeId <> FaVolumeID)) then
CopyFile(pChar(ExtractFilePath(Application.Exename)+'dbf\'+DirInfo.Name),
pChar(SaveDialog1.FileName+'\'+DirInfo.Name),True);
r:=FindNext(DirInfo);
end;
SysUtils.FindClose(DirInfo);
end;
end;
milpas 2002-06-17
  • 打赏
  • 举报
回复
调用Windows的有关Shell操作,我现在没有源代码

如果不是多级子目录的话你可以用FindFirst和FindNext来找出所有文件然后用 Copyfile来做
smhpnuaa 2002-06-17
  • 打赏
  • 举报
回复
SHFileOperation
yang6130 2002-06-17
  • 打赏
  • 举报
回复
shellapi:
copyfile好象也可以拷贝文件夹
DelUser 2002-06-17
  • 打赏
  • 举报
回复
我现在的问题是只要死的从D:\Table复制到E:\Table

5,926

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧