Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Reprezentuje pojedynczy plik w archiwum 7z.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Dziedziczenie
Pochodne
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
Implementuje
Członkowie dziedziczeni
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Uwagi
Rzuć instancję Aspose.Zip.SevenZip.SevenZipArchiveEntry na Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted, aby określić, czy wpis jest zaszyfrowany, czy nie.
Konstruktorzy
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inicjalizuje nową instancję klasy Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parametry
parent
SevenZipArchive
name
string
Nazwa wpisu.
compressionSettings
SevenZipCompressionSettings
Ustawienia dla kompresji lub dekompresji.
source
Stream
Strumień z danymi wpisu, które mają być skompresowane lub zdekompresowane.
fileAttributes
FileAttributes
Atrybuty z systemu plików.
fileInfo
FileSystemInfo
Informacje o pliku lub katalogu, na podstawie których oparty jest wpis.
Wyjątki
name
jest null lub pusty.
Właściwości
CompressedSize
Pobiera rozmiar skompresowanego pliku.
public ulong CompressedSize { get; }
Wartość właściwości
CompressionSettings
Pobiera ustawienia dla kompresji lub dekompresji.
public SevenZipCompressionSettings CompressionSettings { get; }
Wartość właściwości
FileAttributes
Pobiera atrybuty pliku z systemu hosta.
protected FileAttributes FileAttributes { get; }
Wartość właściwości
IsDirectory
Pobiera wartość wskazującą, czy wpis reprezentuje katalog.
public bool IsDirectory { get; }
Wartość właściwości
ModificationTime
Pobiera datę i czas ostatniej modyfikacji.
public DateTime ModificationTime { get; }
Wartość właściwości
Name
Pobiera nazwę wpisu w archiwum.
public string Name { get; protected set; }
Wartość właściwości
Source
Pobiera strumień danych źródłowych dla wpisu.
protected Stream Source { get; set; }
Wartość właściwości
UncompressedSize
Pobiera rozmiar oryginalnego pliku.
public ulong UncompressedSize { get; }
Wartość właściwości
Metody
Extract(string, string)
Wydobywa wpis do systemu plików według podanej ścieżki.
public FileInfo Extract(string path, string password = null)
Parametry
path
string
Ścieżka do pliku docelowego. Jeśli plik już istnieje, zostanie nadpisany.
password
string
Opcjonalne hasło do odszyfrowania.
Zwraca
Informacje o pliku skompresowanym.
Przykłady
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Wyjątki
path
jest null.
Wywołujący nie ma wymaganych uprawnień do dostępu.
path
jest pusty, zawiera tylko białe znaki lub zawiera nieprawidłowe znaki.
Dostęp do pliku path
jest zabroniony.
Podana path
, nazwa pliku lub obie przekraczają maksymalną długość zdefiniowaną przez system. Na przykład na platformach opartych na systemie Windows, ścieżki muszą mieć mniej niż 248 znaków, a nazwy plików muszą mieć mniej niż 260 znaków.
Plik w path
zawiera dwukropek (:) w środku ciągu.
Archiwum jest uszkodzone.
Extract(Stream, string)
Wydobywa wpis do podanego strumienia.
public void Extract(Stream destination, string password = null)
Parametry
destination
Stream
Strumień docelowy. Musi być zapisywalny.
password
string
Opcjonalne hasło do odszyfrowania.
Przykłady
Wydobycie wpisu z archiwum zip z hasłem.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Wyjątki
destination
nie obsługuje zapisu.
Archiwum nie jest otwarte do wydobycia. - lub - Ten wpis to katalog.
Nieprawidłowe dane w obrębie wpisu.
FinalizeCompressedData(Stream, byte[])
Zapisuje do strumienia wyjściowego wszelkie nagłówki, które następują po skompresowanych danych.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Parametry
outputStream
Stream
Strumień wyjściowy dla wpisu.
encoderProperties
byte[]
Właściwości kompresora.
Zwraca
Liczba “technicznych” bajtów, które zostały dodane po istotnym bloku danych wpisu.
GetDestinationStream(Stream)
Strumień docelowy dla wpisu, może być ozdobiony.
protected abstract Stream GetDestinationStream(Stream outputStream)
Parametry
outputStream
Stream
Strumień wyjściowy dla wpisu.
Zwraca
Strumień docelowy dla kompresji wpisu.
Open(string)
Otwiera wpis do wydobycia i zapewnia strumień z zawartością wpisu.
public Stream Open(string password = null)
Parametry
password
string
Opcjonalne hasło do odszyfrowania.
Zwraca
Strumień, który reprezentuje zawartość wpisu.
Przykłady
Użycie:
Stream decompressed = entry.Open();
.NET 4.0 i wyżej - użyj metody Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 i wcześniej - skopiuj bajty ręcznie:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Uwagi
Odczytaj ze strumienia, aby uzyskać oryginalną zawartość pliku. Zobacz sekcję przykładów.
#### Wyjątki
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Archiwum nie jest otwarte do wydobycia. - lub - Ten wpis to katalog.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Nieprawidłowe dane w obrębie wpisu.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Podnosi zdarzenie, gdy część surowego strumienia jest skompresowana.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Typ zdarzenia
EventHandler<ProgressEventArgs>
Przykłady
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Uwagi
Nadawcą zdarzenia jest instancja Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Nie wywołuje się w trybie wielowątkowym dla wpisów LZMA2.