拷贝目录的问题(50分)

  • 主题发起人 主题发起人 昊海
  • 开始时间 开始时间

昊海

Unregistered / Unconfirmed
GUEST, unregistred user!
这里是一个拷贝目录的过程, ;WinExec(lpCmdLine, SW_HIDE)调用了子进程Xcopy,但在调用结束后却发现没有被释放,在任务管理器里可以看到Xcopy的,这是为什么,如何解决??
procedure CopyDir(SourceDir, DestDir : String);
var
; lpCmdLine : PChar;
; tmpSysDir : String;
begin
; if SourceDir[length(SourceDir)] = '/' then
; ; SourceDir := Copy(SourceDir, 1, Length(SourceDir)-1) ;
; if DestDir[length(DestDir)] = '/' then
; ; DestDir := Copy(DestDir, 1, Length(DestDir)-1);
; lpCmdLine := PChar(Format('xcopy "%s" ;"%s" /D', ; ;
; ; ; ; ; ; ; ; ; ; ; ; ; ; ; [SourceDir, DestDir]));
; WinExec(lpCmdLine, SW_HIDE);
end;
 
怎么又跑到这儿来问了,:)

我不贴了一个 favorites tree 吗?
里面有使用 SHFileOperation 的函数,你看看就明白了
 
哎呀我非常同意上面老兄得提议!
只是你上面的那段程序也太长了吧!
只要一个String 得变量就行了

如:
var
; ;sFile:String;
begin
; ; sFile := 'Copy '+SoureDir + ' '+DesDir;
; ; WinExec(PChar(sFile),SW_HIDE);
end;
 
我用Xcopy的原因主要是参数/D的作用,如果源目录文件太多的话时间会很长,所以我只想拷贝最新的文件;
=》940801, 你贴的favorites tree 我怎么没有看到呢?
 
怎样拷贝目录

procedure TForm1.Button1Click(Sender: TObject);
var
; OpStruc: TSHFileOpStruct;
; frombuf, tobuf: Array [0..128] of Char;
Begin
; FillChar( frombuf, Sizeof(frombuf), 0 );
; FillChar( tobuf, Sizeof(tobuf), 0 );
; StrPCopy( frombuf, 'd:/brief/*.*' );
; StrPCopy( tobuf, 'd:/temp/brief' );
; With OpStruc DO Begin
; ; Wnd:= Handle;
; ; wFunc:= FO_COPY;
; ; pFrom:= @frombuf;
; ; pTo:=@tobuf;
; ; fFlags:= FOF_NOCONFIRMATION or FOF_RENAMEONCOLLISION;
; ; fAnyOperationsAborted:= False;
; ; hNameMappings:= Nil;
; ; lpszProgressTitle:= Nil;
; end;
; ShFileOperation( OpStruc );
end;
////////////////////////////////////////////////////////
这个过程用得特爽。
——iseek
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
640
import
I
后退
顶部