Class SevenZipArchiveEntry

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

objectSevenZipArchiveEntry

Odvozené

SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain

Implementuje

IArchiveFileEntry

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

ArgumentException

name je null nebo prázdný.

Vlastnosti

CompressedSize

Získá velikost komprimovaného souboru.

public ulong CompressedSize { get; }

Hodnota vlastnosti

ulong

CompressionSettings

Získá nastavení pro kompresi nebo dekompresi.

public SevenZipCompressionSettings CompressionSettings { get; }

Hodnota vlastnosti

SevenZipCompressionSettings

FileAttributes

Získá atributy souboru z hostitelského systému.

protected FileAttributes FileAttributes { get; }

Hodnota vlastnosti

FileAttributes

IsDirectory

Získá hodnotu indikující, zda položka představuje adresář.

public bool IsDirectory { get; }

Hodnota vlastnosti

bool

ModificationTime

Získá datum a čas poslední úpravy.

public DateTime ModificationTime { get; }

Hodnota vlastnosti

DateTime

Name

Získá název položky v archivu.

public string Name { get; protected set; }

Hodnota vlastnosti

string

Source

Získá datový proud pro položku.

protected Stream Source { get; set; }

Hodnota vlastnosti

Stream

UncompressedSize

Získá velikost původního souboru.

public ulong UncompressedSize { get; }

Hodnota vlastnosti

ulong

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

FileInfo

Informace o složeném souboru.

Příklady

using (var archive = new SevenZipArchive("archive.7z"))
{
    archive.Entries[0].Extract("data.bin");
}

Výjimky

ArgumentNullException

path je null.

SecurityException

Volající nemá požadované oprávnění pro přístup.

ArgumentException

path je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky.

UnauthorizedAccessException

Přístup k souboru path je odepřen.

PathTooLongException

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ů.

NotSupportedException

Soubor na path obsahuje dvojtečku (:) uprostřed řetězce.

InvalidDataException

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

ArgumentException

destination nepodporuje zápis.

InvalidOperationException

Archiv není otevřen pro extrakci. - nebo - Tato položka je adresář.

InvalidDataException

Š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

int

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

Stream

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

Stream

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&gt;

Příklady

archive.Entries[0].CompressionProgressed += (s, e) =&gt; { 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.

 Čeština