1. 程式人生 > >delphi CopyFileProgressBar 拷貝文件顯示進度條

delphi CopyFileProgressBar 拷貝文件顯示進度條

items path adb sets sage app sts min ets

CopyFileProgressBar(pwidechar(ListBox1.Items.Strings[I]),pwidechar(NewDir+\+ExtractFileName(ListBox1.Items.Strings[I])));

 

procedure CopyFileProgressBar(getPath,setPath:string);

var

  getStream,setStream: TFileStream;

  num, n: Integer;

  buf: PByte;

  BufSize,block: Integer;

begin

  if
not FileExists(getPath) then begin // ShowMessage(‘源文件不存在‘); // Exit; end; getStream := TFileStream.Create(getPath, fmOpenRead or fmShareExclusive); setStream := TFileStream.Create(setPath, fmCreate); num := getStream.Size; setStream.Size := num; getStream.Position := 0; setStream.Position :
= 0; BufSize := num; block := BufSize div 100; GetMem(buf, BufSize); form1.ProgressBar1.Max := 100; form1.ProgressBar1.Min := 0; form1.ProgressBar1.Position := 0; while num <> 0 do begin Application.ProcessMessages; n := block; if n > num then n := num; getStream.ReadBuffer(buf^, n); setStream.WriteBuffer(buf^, n); form1.ProgressBar1.Position :
= Trunc((1 - num / BufSize) * 100); Dec(num, n); end; FreeMem(buf, BufSize); getStream.Free; setStream.Free; //ShowMessage(‘復制完畢‘); form1.ProgressBar1.Position := 0; end;

delphi CopyFileProgressBar 拷貝文件顯示進度條