Class ArchiveEntry
Namespace: Aspose.Zip
Assembly: Aspose.Zip.dll (25.1.0)
Reprezentuje jednotlivý soubor v archivu.
public abstract class ArchiveEntry : IArchiveFileEntry
Dědění
Odvozené
ArchiveEntryEncrypted, ArchiveEntryPlain
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.ArchiveEntry na Aspose.Zip.ArchiveEntryEncrypted, abyste zjistili, zda je položka zašifrovaná nebo ne.
Konstruktor
ArchiveEntry(string, CompressionSettings, Func<stream>, FileAttributes)
Inicializuje novou instanci třídy Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Func<stream> sourceProvider, FileAttributes fileAttributes)
Parametry
name
string
Název položky.
compressionSettings
CompressionSettings
Nastavení pro kompresi nebo dekompresi.
sourceProvider
Func<Stream>
Metoda vracející stream s daty položky, která má být komprimována.
fileAttributes
FileAttributes
Atributy ze souborového systému.
ArchiveEntry(string, CompressionSettings, Stream, FileAttributes, FileSystemInfo)
Inicializuje novou instanci třídy Aspose.Zip.ArchiveEntry.
protected ArchiveEntry(string name, CompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Parametry
name
string
Název položky.
compressionSettings
CompressionSettings
Nastavení pro kompresi nebo dekompresi.
source
Stream
Stream s daty položky, která má být 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.
Vlastnosti
Comment
Získá komentář položky v archivu.
public string Comment { get; protected set; }
Hodnota vlastnosti
CompressedSize
Získá velikost komprimovaného souboru.
public ulong CompressedSize { get; }
Hodnota vlastnosti
CompressionSettings
Získá nastavení pro kompresi nebo dekompresi.
public CompressionSettings CompressionSettings { get; }
Hodnota vlastnosti
DataSource
Zdroj pro položku, pokud byla položka přidána do archivu, nikoli extrahována.
public Stream DataSource { get; }
Hodnota vlastnosti
Poznámky
Před přiřazením je zdroj null. Tento zdroj může být přiřazen v metodě Archive.Save
v některých případech.
FileAttributes
Získá atributy souboru z hostitelského systému.
protected FileAttributes FileAttributes { get; }
Hodnota vlastnosti
IsDirectory
Získá hodnotu, která indikuje, zda položka představuje adresář.
public bool IsDirectory { get; }
Hodnota vlastnosti
ModificationTime
Získá nebo nastaví datum a čas poslední úpravy.
public DateTime ModificationTime { get; set; }
Hodnota vlastnosti
Name
Získá název položky v archivu.
public string Name { get; protected 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í.
Vrací
Informace o souboru vytvořeném souborem.
Příklady
Extrahujte dvě položky z archivu zip, každou s vlastním heslem
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract("first.bin", "first_pass");
archive.Entries[1].Extract("second.bin", "second_pass");
}
}
Výjimky
path
je null.
Volající nemá potřebná 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.
Soubor nebyl nalezen.
Zadaná cesta je neplatná, například se nachází na nepřiřazeném disku.
Soubor je již otevřen.
Data jsou poškozená. -nebo- Ověření CRC nebo MAC selhalo pro položku.
Extract(Stream, string)
Extrahuje položku do poskytnutého streamu.
public void Extract(Stream destination, string password = null)
Parametry
destination
Stream
Cílový stream. Musí být zapisovatelný.
password
string
Volitelné heslo pro dešifrování.
Příklady
Extrahujte položku z archivu zip s heslem.
using (FileStream zipFile = File.Open("archive.zip", FileMode.Open))
{
using (Archive archive = new Archive(zipFile))
{
archive.Entries[0].Extract(httpResponseStream, "p@s$");
}
}
Výjimky
Data jsou poškozená. -nebo- Ověření CRC nebo MAC selhalo pro položku.
Zdroj je poškozený nebo není čitelný.
destination
nepodporuje zápis.
Open(string)
Otevře položku pro extrakci a poskytne stream s dekomprimovaným obsahem položky.
public Stream Open(string password = null)
Parametry
password
string
Volitelné heslo pro dešifrování.
Vrací
Stream, který představuje obsah položky.
Příklady
Použití:
Stream decompressed = entry.Open();
.NET 4.0 a novější - použijte metodu Stream.CopyTo:
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 a starší - zkopí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
<p>Přečtěte si ze streamu, abyste získali původní obsah souboru. Viz sekce příkladů.</p>
#### Výjimky
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
Archiv je v nesprávném stavu.
### <a id="Aspose_Zip_ArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Vyvolá se, když je komprimována část surového streamu.
```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.ArchiveEntry.
ExtractionProgressed
Vyvolá se, když je extrahována část surového streamu.
public event EventHandler<progresseventargs> ExtractionProgressed
Typ události
EventHandler<ProgressEventArgs>
Příklady
archive.Entries[0].ExtractionProgressed += (s, e) => { int percent = (int)((100 * e.ProceededBytes) / ((ArchiveEntry)s).UncompressedSize); };
Poznámky
Odesílatelem události je instance Aspose.Zip.ArchiveEntry.