
正文
delphi CopyFileProgressBar 拷贝文件显示进度条
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
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 := ; setStream.Position := ; BufSize := num; block := BufSize div ; GetMem(buf, BufSize); form1.ProgressBar1.Max := ; form1.ProgressBar1.Min := ; form1.ProgressBar1.Position := ; while num <> do begin Application.ProcessMessages; n := block; if n > num then n := num; getStream.ReadBuffer(buf^, n); setStream.WriteBuffer(buf^, n); form1.ProgressBar1.Position := Trunc(( - num / BufSize) * ); Dec(num, n); end; FreeMem(buf, BufSize); getStream.Free; setStream.Free; //ShowMessage('复制完毕'); form1.ProgressBar1.Position := ;end;






