Comprimir arquivos em partes Delphi...
Preciso compactar um arquivo de 4GB por exemplo em partes de 150MB e estou com dúvidas de como fazer isso no Delphi.
o Que tenho é o seguinte (Unit ZLib):
o Que tenho é o seguinte (Unit ZLib):
procedure Comprimir(ArquivoCompacto: TFileName; Arquivos: array of TFileName); var FileInName: TFileName; FileEntrada, FileSaida: TFileStream; Compressor: TCompressionStream; NumArq, I, Len, Size: Integer; Fim: Byte; begin FileSaida := TFileStream.Create(ArquivoCompacto, fmCreate or fmShareExclusive); Compressor := TCompressionStream.Create(clMax, FileSaida); NumArq := Length(Arquivos); Compressor.Write(NumArq, SizeOf(Integer)); try for I := Low(Arquivos) to High(Arquivos) do begin FileEntrada := TFileStream.Create(Arquivos[I], fmOpenRead and fmShareExclusive); try FileInName := ExtractFileName(Arquivos[I]); Len := Length(FileInName); Compressor.Write(Len, SizeOf(Integer)); Compressor.Write(FileInName[1], Len); Size := FileEntrada.Size; Compressor.Write(Size, SizeOf(Integer)); Compressor.CopyFrom(FileEntrada, FileEntrada.Size); Fim := 0; Compressor.Write(Fim, SizeOf(Byte)); finally FileEntrada.Free; end; end; finally FreeAndNil(Compressor); FreeAndNil(FileSaida); end; end;
Ariel Morgan
Curtidas 0