Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Reprezentuje jednotlivý soubor v archivu 7z.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Dědičnost
Odvozené
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
Implementuje
Děděné členy
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Poznámky
Převeďte instanci Aspose.Zip.SevenZip.SevenZipArchiveEntry na Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted, abyste zjistili, zda je položka zašifrována nebo ne.
Konstruktor
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inicializuje novou instanci třídy Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parametry
parent
SevenZipArchive
name
string
Název položky.
compressionSettings
SevenZipCompressionSettings
Nastavení pro kompresi nebo dekompresi.
source
Stream
Proud s daty položky, která mají být buď komprimována, nebo dekomprimována.
fileAttributes
FileAttributes
Atributy ze souborového systému.
fileInfo
FileSystemInfo
Informace o souboru nebo adresáři, na kterém je položka založena.
Výjimky
name
je null nebo prázdný.
Vlastnosti
CompressedSize
Získá velikost komprimovaného souboru.
public ulong CompressedSize { get; }
Hodnota vlastnosti
CompressionSettings
Získá nastavení pro kompresi nebo dekompresi.
public SevenZipCompressionSettings CompressionSettings { get; }
Hodnota vlastnosti
FileAttributes
Získá atributy souboru z hostitelského systému.
protected FileAttributes FileAttributes { get; }
Hodnota vlastnosti
IsDirectory
Získá hodnotu indikující, zda položka představuje adresář.
public bool IsDirectory { get; }
Hodnota vlastnosti
ModificationTime
Získá datum a čas poslední úpravy.
public DateTime ModificationTime { get; }
Hodnota vlastnosti
Name
Získá název položky v archivu.
public string Name { get; protected set; }
Hodnota vlastnosti
Source
Získá datový proud pro položku.
protected Stream Source { get; set; }
Hodnota vlastnosti
UncompressedSize
Získá velikost původního souboru.
public ulong UncompressedSize { get; }
Hodnota vlastnosti
Metody
Extract(string, string)
Extrahuje položku do souborového systému podle poskytnuté cesty.
public FileInfo Extract(string path, string password = null)
Parametry
path
string
Cesta k cílovému souboru. Pokud soubor již existuje, bude přepsán.
password
string
Volitelné heslo pro dešifrování.
Návratová hodnota
Informace o složeném souboru.
Příklady
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Výjimky
path
je null.
Volající nemá požadované oprávnění pro přístup.
path
je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.
Přístup k souboru path
je odepřen.
Zadaná path
, název souboru nebo obojí překračuje maximální délku definovanou systémem. Například na platformách založených na Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Soubor na path
obsahuje dvojtečku (:) uprostřed řetězce.
Archiv je poškozen.
Extract(Stream, string)
Extrahuje položku do poskytnutého proudu.
public void Extract(Stream destination, string password = null)
Parametry
destination
Stream
Cílový proud. Musí být zapisovatelný.
password
string
Volitelné heslo pro dešifrování.
Příklady
Extrakce položky zip archivu s heslem.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Výjimky
destination
nepodporuje zápis.
Archiv není otevřen pro extrakci. - nebo - Tato položka je adresář.
Špatná data uvnitř položky.
FinalizeCompressedData(Stream, byte[])
Zapíše do výstupního proudu jakékoliv hlavičky, které následují po komprimovaných datech.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Parametry
outputStream
Stream
Výstupní proud pro položku.
encoderProperties
byte[]
Vlastnosti kompresoru.
Návratová hodnota
Počet “technických” bytů, které byly přidány po významném datovém bloku položky.
GetDestinationStream(Stream)
Cílový proud pro položku, může být dekorován.
protected abstract Stream GetDestinationStream(Stream outputStream)
Parametry
outputStream
Stream
Výstupní proud pro položku.
Návratová hodnota
Cílový proud pro kompresi položky.
Open(string)
Otevře položku pro extrakci a poskytne proud s obsahem položky.
public Stream Open(string password = null)
Parametry
password
string
Volitelné heslo pro dešifrování.
Návratová hodnota
Proud, který představuje obsah položky.
Příklady
Použití:
Stream decompressed = entry.Open();
.NET 4.0 a vyšší - použijte metodu Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 a předtím - kopírujte bajty ručně:
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Poznámky
Čtěte z proudu, abyste získali původní obsah souboru. Viz sekce příklady.
#### Výjimky
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Archiv není otevřen pro extrakci. - nebo - Tato položka je adresář.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Špatná data uvnitř položky.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Vyvolá se, když je část surového proudu komprimována.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Typ události
EventHandler<ProgressEventArgs>
Příklady
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Poznámky
Odesílatelem události je instance Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Nevyvolává se v režimu s více vlákny pro položky LZMA2.