如何实现拷贝目录(包括子目录)中所有目录功能? ( 积分: 50 )

  • 主题发起人 主题发起人 fluganto
  • 开始时间 开始时间
F

fluganto

Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi如何实现拷贝目录(包括子目录)中所有目录功能?
如我要将D盘备份到 e:/1目录中,如果先前存在的文件则用新的文件取代,
D盘可能有很多的文件和目录及子目录。
 
用delphi如何实现拷贝目录(包括子目录)中所有目录功能?
如我要将D盘备份到 e:/1目录中,如果先前存在的文件则用新的文件取代,
D盘可能有很多的文件和目录及子目录。
 
如果需要复制目录,需要使用WinAPI 函数SHFILEOPERATION,帮助中(MS SDK)有说明。
function CopyDirectory(const Source, Dest: string): boolean;
///复制Source整个目录到DEST目录,如果Dest不存在,自动建立,如果DEST存在,那么Source将作为Dest的子目录!
//例如如果要复制E:/Temp整个目录到E:/那么代码为: copydirectory('e:/temp','e:/');
///如果要复制E:/Temp到E:/Test目录下面,那么代码为:CopyDirecotry('E:/Temp','E:/TEST');
var
fo: TSHFILEOPSTRUCT;
begin
FillChar(fo, SizeOf(fo), 0);
with fo do
begin
Wnd := 0;
wFunc := FO_COPY;
pFrom := PChar(source+#0);
pTo := PChar(Dest+#0);
fFlags := FOF_NOCONFIRMATION+FOF_NOCONFIRMMKDIR ;
end;
Result := (SHFileOperation(fo) = 0);
end;
 
樓上的說的沒錯,先試試看有沒有問題。
 
問題應該是沒有的,
但不知道為什麼不能拷貝整個盤下的目錄和文件?
如把 d:/下所有的文件和目錄到拷貝到 e:/temp中,
如果要實現這樣的功能應該怎麼去設定?
 
CopyDirecotry('E:/', 'E:/temp');
 
就是用
CopyDirecotry('E:/', 'E:/temp');
不行啊!
 
试试一个笨方法
在delphi中用命令行处理,bat也行那容易吧?
 
謝謝大家!
 
后退
顶部