• Delphi带进度条复制文件


    function FileCopy(SourceFile,TargetFile : string;ProgressBar :TRzProgressStatus ) : boolean;

    //function FileCopy(SourceFile,TargetFile : string;ProgressBar :TProgressBar ) : boolean;
    var
      getStream,setStream: TFileStream;
      num, n: Integer;
      buf: PByte;
      BufSize,block: Integer;
    begin
      result := false;
      if not FileExists(SourceFile) then
      begin
        //ShowMessage('源文件不存在!');
        Exit;
      end;

      getStream := TFileStream.Create(SourceFile, fmOpenRead or fmShareExclusive);
      setStream := TFileStream.Create(TargetFile, fmCreate);

      num := getStream.Size;
      setStream.Size := num;
      getStream.Position := 0;
      setStream.Position := 0;

      BufSize := num;
      block := BufSize div 100;
      GetMem(buf, BufSize);

     // ProgressBar.Max := 100;
      ProgressBar.Percent := 0;
      //ProgressBar.min := 0;
      //ProgressBar.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);
        ProgressBar.Percent := Trunc((1 - num / BufSize)*100);
        //ProgressBar.Position := Trunc((1 - num / BufSize)*100);
        Dec(num, n);
      end;
      ProgressBar.Percent := 0;
      //ProgressBar.Position := 0;
      FreeMem(buf, BufSize);
      getStream.Free;
      setStream.Free;
      result := true;
    end;

  • 相关阅读:
    解决Ubuntu19.04无法安装SecureCRT
    gluster学习(二)
    gluster学习(一)
    ansible安装过程遇到的问题
    shell在linux里摇摇晃晃
    ubuntu18.10安装网易云音乐
    MVC Bundle生成的css路径问题
    Vuejs自定义select2指令
    VueJs笔记
    在webAPI的BaseController上使用RoutePrefix
  • 原文地址:https://www.cnblogs.com/MaxWoods/p/2178733.html
Copyright © 2020-2023  润新知