zoukankan      html  css  js  c++  java
  • 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 := 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;
  • 相关阅读:
    Mac下搭建php开发环境
    phalcon:跟踪sql语句
    phalcon的CLI应用
    phalcon遇到的那些坑
    浏览器 批量大文件上传下载
    网页 批量大文件上传下载
    B/S 批量大文件上传下载
    JavaScript 批量大文件上传下载
    js 批量大文件上传下载
    vue 批量大文件上传下载
  • 原文地址:https://www.cnblogs.com/westsoft/p/8449597.html
Copyright © 2011-2022 走看看