Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Stellt eine einzelne Datei innerhalb eines 7z-Archivs dar.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Vererbung
Abgeleitet
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
Implementiert
Vererbte Mitglieder
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Bemerkungen
Wandeln Sie eine Instanz von Aspose.Zip.SevenZip.SevenZipArchiveEntry in Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted um, um festzustellen, ob der Eintrag verschlüsselt ist oder nicht.
Konstruktoren
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Initialisiert eine neue Instanz der Klasse Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parameter
parent
SevenZipArchive
name
string
Name des Eintrags.
compressionSettings
SevenZipCompressionSettings
Einstellungen für die Kompression oder Dekompression.
source
Stream
Stream mit Eintragsdaten, die komprimiert oder dekomprimiert werden sollen.
fileAttributes
FileAttributes
Attribute aus dem Dateisystem.
fileInfo
FileSystemInfo
Datei- oder Verzeichnisinformationen, auf denen der Eintrag basiert.
Ausnahmen
Der name
ist null oder leer.
Eigenschaften
CompressedSize
Erhält die Größe der komprimierten Datei.
public ulong CompressedSize { get; }
Eigenschaftenwert
CompressionSettings
Erhält die Einstellungen für die Kompression oder Dekompression.
public SevenZipCompressionSettings CompressionSettings { get; }
Eigenschaftenwert
FileAttributes
Erhält die Dateiattribute aus dem Hostsystem.
protected FileAttributes FileAttributes { get; }
Eigenschaftenwert
IsDirectory
Erhält einen Wert, der angibt, ob der Eintrag ein Verzeichnis darstellt.
public bool IsDirectory { get; }
Eigenschaftenwert
ModificationTime
Erhält das Datum und die Uhrzeit der letzten Änderung.
public DateTime ModificationTime { get; }
Eigenschaftenwert
Name
Erhält den Namen des Eintrags innerhalb des Archivs.
public string Name { get; protected set; }
Eigenschaftenwert
Source
Erhält den Datenquellenstream für den Eintrag.
protected Stream Source { get; set; }
Eigenschaftenwert
UncompressedSize
Erhält die Größe der Originaldatei.
public ulong UncompressedSize { get; }
Eigenschaftenwert
Methoden
Extract(string, string)
Extrahiert den Eintrag in das Dateisystem anhand des angegebenen Pfades.
public FileInfo Extract(string path, string password = null)
Parameter
path
string
Der Pfad zur Zieldatei. Wenn die Datei bereits existiert, wird sie überschrieben.
password
string
Optionales Passwort zur Entschlüsselung.
Gibt zurück
Die Dateiinfo der zusammengesetzten Datei.
Beispiele
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Ausnahmen
path
ist null.
Der Aufrufer hat nicht die erforderliche Berechtigung zum Zugriff.
Der path
ist leer, enthält nur Leerzeichen oder enthält ungültige Zeichen.
Der Zugriff auf die Datei path
ist verweigert.
Der angegebene path
, Dateiname oder beides überschreiten die vom System definierten maximalen Längen. Beispielsweise müssen Pfade auf Windows-basierten Plattformen weniger als 248 Zeichen und Dateinamen weniger als 260 Zeichen lang sein.
Die Datei unter path
enthält einen Doppelpunkt (:) in der Mitte des Strings.
Das Archiv ist beschädigt.
Extract(Stream, string)
Extrahiert den Eintrag in den bereitgestellten Stream.
public void Extract(Stream destination, string password = null)
Parameter
destination
Stream
Zielstream. Muss beschreibbar sein.
password
string
Optionales Passwort zur Entschlüsselung.
Beispiele
Extrahieren Sie einen Eintrag aus dem Zip-Archiv mit Passwort.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Ausnahmen
destination
unterstützt kein Schreiben.
Das Archiv ist nicht zum Extrahieren geöffnet. - oder - Dieser Eintrag ist ein Verzeichnis.
Falsche Daten im Eintrag.
FinalizeCompressedData(Stream, byte[])
Schreibt in den Ausgabestream alle Header, die auf die komprimierten Daten folgen.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Parameter
outputStream
Stream
Ausgabestream für den Eintrag.
encoderProperties
byte[]
Eigenschaften des Kompressors.
Gibt zurück
Anzahl der “technischen” Bytes, die nach dem signifikanten Datenblock des Eintrags hinzugefügt wurden.
GetDestinationStream(Stream)
Zielstream für den Eintrag, kann dekoriert sein.
protected abstract Stream GetDestinationStream(Stream outputStream)
Parameter
outputStream
Stream
Ausgabestream für den Eintrag.
Gibt zurück
Der Zielstream für die Kompression des Eintrags.
Open(string)
Öffnet den Eintrag zur Extraktion und bietet einen Stream mit dem Inhalt des Eintrags.
public Stream Open(string password = null)
Parameter
password
string
Optionales Passwort zur Entschlüsselung.
Gibt zurück
Der Stream, der den Inhalt des Eintrags darstellt.
Beispiele
Verwendung:
Stream decompressed = entry.Open();
.NET 4.0 und höher - verwenden Sie die Methode Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 und früher - Bytes manuell kopieren:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Bemerkungen
Lesen Sie vom Stream, um den ursprünglichen Inhalt der Datei zu erhalten. Siehe Abschnitt Beispiele.
#### Ausnahmen
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Das Archiv ist nicht zum Extrahieren geöffnet. - oder - Dieser Eintrag ist ein Verzeichnis.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Falsche Daten im Eintrag.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Wird ausgelöst, wenn ein Teil des Rohstreams komprimiert wurde.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Ereignistyp
EventHandler<ProgressEventArgs>
Beispiele
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Bemerkungen
Der Ereignisauslöser ist eine Instanz von Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Wird im Multithread-Modus für LZMA2-Einträge nicht ausgelöst.