自己编写了一个拷贝目录(及下面子目录和文件)的函数,但怎样用进度条来显示复制进度?(20分)

  • 主题发起人 主题发起人 del530
  • 开始时间 开始时间
D

del530

Unregistered / Unconfirmed
GUEST, unregistred user!
怎样用进度条来显示文件的复制进度?
 
我是这样想的: <br>&nbsp; &nbsp; 先获取要拷贝目录下的总单元数,将文件和子目录都看成是单元.<br>&nbsp; &nbsp; 然后根据总单元数确定进度条的显示过程.
 
你可以先穷举所有目录下的文件<br>记录在tstringlist中这样利用一个计数器就可以实现了
 
你查一下msdn的SHFileOperation这个函数的使用方法
 
同意yytxt的想法
 
Uses ShellAPI ;<br>function TForm1.Win_Copy(fFROM,fTO:String):boolean;<br>var FData : TShFileOpStruct;<br>begin<br>&nbsp; &nbsp;Fdata.pFrom := PChar(fFrom);<br>&nbsp; &nbsp;fdata.pTo := PChar(fTo);<br>&nbsp; &nbsp;fdata.wFunc := FO_COPY ;<br>&nbsp; &nbsp;FData.Wnd := application.Handle ;<br>&nbsp; &nbsp;fData.lpszProgressTitle := '正在复制';<br>&nbsp; &nbsp;fData.fFlags := FOF_ALLOWUNDO OR FOF_NOCONFIRMMKDIR;<br>&nbsp; &nbsp;result:=ShFileOperation( FData ) = 0 &nbsp;;<br>end;<br>procedure TForm1.Button1Click(Sender: TObject);<br>begin<br>&nbsp; &nbsp;Win_Copy('c:/WIN2000/*.*','c:/jdk');<br>end;<br>
 
但如果是拷贝单个文件或文件太小的话,就不能地显示进度条,请问要如何解决。
 
接受答案了.
 
后退
顶部