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