Hola, Si se puede.
En la clase
TZipFile tienes la función
Read y puedes llamarla con un
Stream
Código Delphi
[-]
procedure Read(const FileName: string; out Bytes: TBytes); overload;
procedure Read(Index: Integer; out Bytes: TBytes); overload;
procedure Read(const FileName: string; out Stream: TStream; out LocalHeader: TZipHeader); overload;
procedure Read(Index: Integer; out Stream: TStream; out LocalHeader: TZipHeader); overload;
Para listar los archivos dentro, debes abrir el Zip y recorrerlo
Código Delphi
[-]
Zip := TZipFile.Create;
try
Zip.Open(ZipFileName, TZipMode.zmRead);
For FileName in Zip.FileNames do
begin
end;
finally
Zip.Close;
FreeAndNil(Zip);
end;