TJcl7zCompressArchive проблема с 1 миллионом файлов - PullRequest
0 голосов
/ 04 июня 2019

Я пытаюсь создать файл 7z, но я получил сообщение об ошибке «Sevenzip: Результат ошибки (8007000E) Недостаточно места на диске для завершения операции», но на моем диске свободно 65,5 ГБ.

Примечание. Я пытаюсь сжать более 1 миллиона файлов, размер несжатого файла которых составляет около 100 ГБ.

procedure TForm1.Button1Click(Sender: TObject);
var
  I : Integer;
  FileName : String;
  Zip : TJcl7zCompressArchive;
  FileList : TStringList;
begin
  FileList := fFileList(0, '', False, True, True, FileName);
  ForceDirectories(ExtractFilePath(FileName));
  Zip := TJcl7zCompressArchive.Create(FileName);
  try
    Zip.OnProgress := ProgressZip;

    for I := 0 to FileList.Count - 1 do
      begin
        Zip.AddFile(Copy(ExtractFilePath(FileList[I]),4,MaxInt) + ExtractFileName(FileList[I]), FileList[I]);
      end;


    Zip.Compress;
  finally
    FreeAndNil(FileList);
    FreeAndNil(Zip);
  end;
end;
...