Class Archive

Class Archive

Nazwa przestrzeń: Aspose.Zip Zestawienie: Aspose.Zip.dll (25.5.0)

Ta klasa reprezentuje plik archiwum zip. Użyj go do kompozycji, ekstrakcji lub aktualizacji archives zip .

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Dziedziczeni członkowie

object.GetType() , object.MemberwiseClone() , object.ToString() , object.Equals(object?) , object.Equals(object?, object?) , object.ReferenceEquals(object?, object?) , object.GetHashCode()

Constructors

Archive(ArchiveEntrySettings)

Inicjalizuje nową instancję klasy Aspose.Zip.Archive z opcjonalnymi ustawieniami dla jej wpisów.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do nowo dodanych elementów Aspose.Zip.ArchiveEntry.Jeśli nie zostanie określony, najczęstsza kompresja Deflate bez szyfrowania będzie używana.

Examples

Poniższy przykład pokazuje, jak kompresować pojedynczy plik z ustawieniami domyślnymi.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Archive(Strumień, ArchiveLoadOptions, ArchiveEntrySettings)

Inicjalizuje nową instancję klasy Aspose.Zip.Archive i tworzy listę wpisów, które można wyciągnąć z archiwum.

public Archive(Stream sourceStream, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

sourceStream Stream

Źródło tego archiwum.

loadOptions ArchiveLoadOptions

Możliwości pobierania istniejących archiwów.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do nowo dodanych elementów Aspose.Zip.ArchiveEntry.Jeśli nie zostanie określony, najczęstsza kompresja Deflate bez szyfrowania będzie używana.

Examples

Poniższy przykład wyciąga szyfrowany archiwum, a następnie dekompresuje pierwszy wpis do .

var fs = File.OpenRead("encrypted.zip");
var extracted = new MemoryStream();
using (Archive archive = new Archive(fs, new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Konstruktor ten nie dekompresuje żadnych wpisów. zobacz Aspose.Zip.ArchiveEntry.Open(System.String) metoda dekompresji.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Nagłówek szyfrowania dla AES jest sprzeczny z metodą kompresji WinZip.

Archive(strumień, ArchiveLoadOptions, ArchiveEntrySettings)

Inicjalizuje nową instancję klasy Aspose.Zip.Archive i tworzy listę wpisów, które można wyciągnąć z archiwum.

public Archive(string path, ArchiveLoadOptions loadOptions = null, ArchiveEntrySettings newEntrySettings = null)

Parameters

path string

Całkowicie kwalifikowany lub relatywny ścieżka do pliku archiwum.

loadOptions ArchiveLoadOptions

Możliwości pobierania istniejących archiwów.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do nowo dodanych elementów Aspose.Zip.ArchiveEntry.Jeśli nie zostanie określony, najczęstsza kompresja Deflate bez szyfrowania będzie używana.

Examples

Poniższy przykład wyciąga szyfrowany archiwum, a następnie dekompresuje pierwszy wpis do .

var extracted = new MemoryStream();
using (Archive archive = new Archive("encrypted.zip", new ArchiveLoadOptions() { DecryptionPassword = "p@s$" }))
{
    using (var decompressed = archive.Entries[0].Open())
    {
        byte[] b = new byte[8192];
        int bytesRead;
        while (0 < (bytesRead = decompressed.Read(b, 0, b.Length)))
            extracted.Write(b, 0, bytesRead);
    }
}

Remarks

Konstruktor ten nie dekompresuje żadnych wpisów. zobacz Aspose.Zip.ArchiveEntry.Open(System.String) metoda dekompresji.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

FileNotFoundException

Plik nie został znaleziony.

DirectoryNotFoundException

Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.

IOException

Archiwum jest już otwarte.

InvalidDataException

Archiwum jest skorumpowane.

Archive(strumień, strumień[ ], Archiwum Opcje)

Inicjalizuje nową instancję klasy Aspose.Zip.Archive z archiwum multi-volume zip i tworzy listę wpisów, które można wyciągnąć z archiwum.

public Archive(string mainSegment, string[] segmentsInOrder, ArchiveLoadOptions loadOptions = null)

Parameters

mainSegment string

Ścieżka do ostatniego segmentu archiwum wielkości z centralnym katalogem.

Zazwyczaj ten segment ma *.zip rozszerzenie i mniejsze niż inne.

segmentsInOrder string [ ]

Ścieżki do każdego segmentu, ale ostatni z multi-volume zip archiwum przestrzega porządku.

Zazwyczaj nazywają go filename.z01, filename.z02, …, filename.z(n-1).

loadOptions ArchiveLoadOptions

Możliwości pobierania istniejących archiwów.

Examples

Ten próbka wyciąga do katalogu archiwum trzech segmentów.

using (Archive a = new Archive("archive.zip", new string[] { "archive.z01", "archive.z02" }))
{
    a.ExtractToDirectory("destination");
}

Exceptions

EndOfStreamException

Nie można pobierać nagłówków ZIP, ponieważ dostarczone pliki są skorumpowane.

Properties

Entries

Otrzymuje wpisy typu Aspose.Zip.ArchiveEntry tworzącego archiwum.

public ReadOnlyCollection<archiveentry> Entries { get; }

Wartość nieruchomości

ReadOnlyCollection • < ArchiveEntry >

NewEntrySettings

Ustawienia kompresji i szyfrowania używane do nowo dodanych elementów Aspose.Zip.ArchiveEntry.

public ArchiveEntrySettings NewEntrySettings { get; }

Wartość nieruchomości

ArchiveEntrySettings

Methods

CreateEntries(Informacje, Bool)

Dodaj do archiwum wszystkie pliki i katalogi ponownie w danym katalogu.

public Archive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)

Parameters

directory DirectoryInfo

Dyrekcja do kompresji.

includeRootDirectory bool

Oznacza, czy należy włączyć sam katalog korzeniowy, czy nie.

Returns

Archive

Archiwum z składanymi wpisami.

Examples

using (Archive archive = new Archive())
{
    DirectoryInfo folder = new DirectoryInfo("C:\folder");
    archive.CreateEntries(folder);
    archive.Save("folder.zip");
}

Exceptions

DirectoryNotFoundException

Droga do directory’ jest niewłaściwa, na przykład na bez mapowania dysku.

SecurityException

Odwołujący nie ma wymaganej zgody na dostęp do adresatu directory".

CreateEntries(Złoty, Bool)

Dodaj do archiwum wszystkie pliki i katalogi ponownie w danym katalogu.

public Archive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)

Parameters

sourceDirectory string

Dyrekcja do kompresji.

includeRootDirectory bool

Oznacza, czy należy włączyć sam katalog korzeniowy, czy nie.

Returns

Archive

Archiwum z składanymi wpisami.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntries("C:\folder");
    archive.Save("folder.zip");
}

CreateEntry(strumień, strumień, bool, ArchiveEntrySettings)

Tworzenie jednego wpisu w archiwum.

public ArchiveEntry CreateEntry(string name, string path, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Nazwa wejścia.

path string

Pełno kwalifikowane nazwisko nowego pliku lub relatywne nazwisko pliku do kompresji.

openImmediately bool

Prawda jest taka, że jeśli natychmiast otworzysz plik, w przeciwnym razie otwórz plik na archiwum.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instancja wejściowa ZIP.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("data.bin", "file.dat");
        archive.Save(zipFile);
    }
}

Remarks

Nazwa wpisu jest ustawiona wyłącznie w parametrze. nazwa pliku podana w parametrze nie wpływa na nazwę wpisu.

Jeśli plik zostanie natychmiast otwarty z parametrem, zostanie on zablokowany, dopóki nie zostanie zapisany archiwum.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku path" jest odrzucony.

PathTooLongException

Określenie path", nazwa pliku lub obie przekracza maksymalną długość określoną przez system. Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w path’ zawiera kolumnę (:) w środku paska.

CreateEntry(strumień, strumień, ArchiveEntrySettings)

Tworzenie jednego wpisu w archiwum.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Nazwa wejścia.

source Stream

Przepływ wejściowy dla wejścia.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instancja wejściowa ZIP.

Examples

using (var archive = new Archive(new ArchiveEntrySettings(null, new AesEcryptionSettings("p@s$", EncryptionMethod.AES256))))
{
    archive.CreateEntry("data.bin", new MemoryStream(new byte[] {0x00, 0xFF} ));
    archive.Save("archive.zip");
}

CreateEntry(strona, FileInfo, bool, ArchiveEntrySettings)

Tworzenie jednego wpisu w archiwum.

public ArchiveEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Nazwa wejścia.

fileInfo FileInfo

Metadane pliki muszą być kompresowane.

openImmediately bool

Prawda jest taka, że jeśli natychmiast otworzysz plik, w przeciwnym razie otwórz plik na archiwum.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instancja wejściowa ZIP.

Examples

Składaj archiwum z wpisami zaszyfrowanymi różnymi metodami szyfrowania i hasłami.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    FileInfo fi1 = new FileInfo("data1.bin");
    FileInfo fi2 = new FileInfo("data2.bin");
    FileInfo fi3 = new FileInfo("data3.bin");
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", fi1, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")));
        archive.CreateEntry("entry2.bin", fi2, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass2", EncryptionMethod.AES128)));
        archive.CreateEntry("entry3.bin", fi3, false, new ArchiveEntrySettings(new DeflateCompressionSettings(), new AesEcryptionSettings("pass3", EncryptionMethod.AES256)));
        archive.Save(zipFile);
    }
}

Remarks

Nazwa wpisu jest ustawiona wyłącznie w parametrze. nazwa pliku podana w parametrze nie wpływa na nazwę wpisu.

Jeśli plik zostanie natychmiast otwarty z parametrem, zostanie on zablokowany, dopóki nie zostanie zapisany archiwum.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.

IOException

Archiwum jest już otwarte.

CreateEntry(strumień, strumień, ArchiveEntrySettings, FileSystemInfo)

Tworzenie jednego wpisu w archiwum.

public ArchiveEntry CreateEntry(string name, Stream source, ArchiveEntrySettings newEntrySettings, FileSystemInfo fileInfo)

Parameters

name string

Nazwa wejścia.

source Stream

Przepływ wejściowy dla wejścia.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.ArchiveEntry.

fileInfo FileSystemInfo

Metadane plików lub folderów do kompresji.

Returns

ArchiveEntry

Instancja wejściowa ZIP.

Examples

Zestaw archiwum z szyfrowanym wpisem.

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", new MemoryStream(new byte[] {0x00, 0xFF} ), new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")), new FileInfo("data1.bin")); 
        archive.Save(zipFile);
    }
}

Remarks

Nazwa wpisu jest ustawiona wyłącznie w parametrze. nazwa pliku podana w parametrze nie wpływa na nazwę wpisu.

można odwołać się do System.IO.DirectoryInfo, jeśli wpis jest adresem.

Exceptions

InvalidOperationException

Zarówno source’ jak i fileInfo’ są null lub source’ jest null, a fileInfo’ oznacza katalog.

CreateEntry(Źródło: Func , ArchiwumEntrySettings)

Tworzenie jednego wpisu w archiwum.

public ArchiveEntry CreateEntry(string name, Func<stream> streamProvider, ArchiveEntrySettings newEntrySettings = null)

Parameters

name string

Nazwa wejścia.

streamProvider Func • < Stream >

Metoda dostarczająca strumień wejściowy do wejścia.

newEntrySettings ArchiveEntrySettings

Ustawienia kompresji i szyfrowania używane do dodania elementu Aspose.Zip.ArchiveEntry.

Returns

ArchiveEntry

Instancja wejściowa ZIP.

Examples

Zestaw archiwum z szyfrowanym wpisem.

System.Func&lt;Stream&gt; provider = delegate(){ return new MemoryStream(new byte[]{0xFF, 0x00}); };
using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry1.bin", provider, new ArchiveEntrySettings(new DeflateCompressionSettings(), new TraditionalEncryptionSettings("pass1")))); 
        archive.Save(zipFile);
    }
}

Remarks

Metoda ta jest dostępna dla .NET Framework 4.0 i powyżej oraz dla .NET Standard 2.0.

DeleteEntry(ArchiveEntry)

Usuwa pierwsze pojawienie się określonego wpisu z listy wpisów.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

Wstęp do usunięcia z listy wpisów.

Returns

Archive

Archiwum z wpisem usunięte.

Examples

Oto jak można usunąć wszystkie wpisy z wyjątkiem ostatniego:

using (var archive = new Archive("archive.zip"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save("last_entry.zip");
}

Exceptions

ObjectDisposedException

Archiwum zostało usunięte.

DeleteEntry(Int)

Usunąć wpis z listy wpisów według indeksu.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

Wskaźnik oparty na zero wejścia do usunięcia.

Returns

Archive

Archiwum z wpisem usunięte.

Examples

using (var archive = new TarArchive("two_files.zip"))
{
    archive.DeleteEntry(0);
    archive.Save("single_file.zip");
}

Exceptions

ObjectDisposedException

Archiwum zostało usunięte.

ArgumentOutOfRangeException

entryIndex’ is less than 0.-or- entryIndex’ is equal to or greater than ‘Entries’ count.

Dispose()

Wykonywanie zadań określonych w aplikacji związanych z uwalnianiem, uwalnianiem lub ponownym uwalnianiem nie zarządzanych zasobów.

public void Dispose()

Dispose(Bool)

Wykonywanie zadań określonych w aplikacji związanych z uwalnianiem, uwalnianiem lub ponownym uwalnianiem nie zarządzanych zasobów.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

Czy zarządzane zasoby powinny zostać usunięte?

ExtractToDirectory(strumień)

Wyciąga wszystkie pliki w archiwum do dostarczonego katalogu.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Droga do katalogu, aby umieścić wyciągnięte pliki.

Examples

using (var archive = new Archive("archive.zip")) 
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarks

Jeśli dyrektywa nie istnieje, zostanie ona utworzona.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

Na przykład, na platformach z systemem Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy plików muszą być mniejsze niż 260 znaków.

SecurityException

Odwołujący nie posiada wymaganej pozwolenia na dostęp do istniejącego katalogu.

NotSupportedException

Jeśli dyrektywa nie istnieje, ścieżka zawiera znak kolumny (:) który nie jest częścią etykiety napędu (“C:”).

ArgumentException

destinationDirectory’ is a zero-length string, contains only white space, or contains one or more invalid characters. You can query for invalid characters by using the System.IO.Path.GetInvalidPathChars method.-or- path is prefixed with, or contains, only a colon character (:).

IOException

Dyskusja określona przez ścieżkę jest plikiem. -or- Nazwa sieci nie jest znana.

InvalidDataException

Nieprawidłowe hasło zostało dostarczone. - lub - Archiwum jest skorumpowane.

Save(Strumień, ArchiveSaveOptions)

Oszczędzaj archiwum na dostarczonym strumieniu.

public void Save(Stream outputStream, ArchiveSaveOptions saveOptions = null)

Parameters

outputStream Stream

Przepływ docelowy.

saveOptions ArchiveSaveOptions

Opcje oszczędzania archiwów.

Examples

using (FileStream zipFile = File.Open("archive.zip", FileMode.Create))
{
    using (var archive = new Archive())
    {
        archive.CreateEntry("entry.bin", "data.bin");
        archive.Save(zipFile);
    }
}

Remarks

Musi być pisemny.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Archiwum zostało usunięte.

Save(Źródło: ArchiveSaveOptions)

Zapisz archiwum do dostarczonego pliku docelowego.

public void Save(string destinationFileName, ArchiveSaveOptions saveOptions = null)

Parameters

destinationFileName string

Jeśli określona nazwa pliku wskazuje na istniejący plik, zostanie on przesłany.

saveOptions ArchiveSaveOptions

Opcje oszczędzania archiwów.

Examples

using (var archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.Save("archive.zip",  new ArchiveSaveOptions() { Encoding = Encoding.ASCII });
}

Remarks

Istnieje możliwość przechowywania archiwum na tę samą ścieżkę, z której został pobrany. jednak nie jest to zalecane, ponieważ ten podejście wykorzystuje kopiowanie do tymczasowego pliku.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

Klient nie posiada wymaganego zezwolenia na dostęp.

ArgumentException

destinationFileName’ jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.

UnauthorizedAccessException

Dostęp do pliku destinationFileName’ jest odrzucony.

PathTooLongException

Określenie destinationFileName’, nazwa pliku, lub obie przekracza maksymalną długość określoną przez system.Na przykład, na platformach opartych na systemie Windows, ścieżki muszą być mniejsze niż 248 znaków, a nazwy pliku muszą być mniejsze niż 260 znaków.

NotSupportedException

Plik w adresie destinationFileName’ zawiera kolumnę (:) w środku paska.

FileNotFoundException

Plik nie został znaleziony.

DirectoryNotFoundException

Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.

IOException

Archiwum jest już otwarte.

SaveSplit(Źródło: SplitArchiveSaveOptions)

Oszczędza archiwum wielkości do dostarczonego katalogu docelowego.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Droga do katalogu, w którym zostaną utworzone segmenty archiwum.

options SplitArchiveSaveOptions

Opcje przechowywania archiwów, w tym nazwa pliku.

Examples

using (Archive archive = new Archive())
{
    archive.CreateEntry("entry.bin", "data.bin");
    archive.SaveSplit(@"C:\Folder",  new SplitArchiveSaveOptions("volume", 65536));
}

Remarks

Metoda ta składa się z kilku plików filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Nie można tworzyć istniejących archiwów wielokrotnych.

Exceptions

InvalidOperationException

Archiwum zostało otwarte z istniejącego źródła.

NotSupportedException

Ten archiwum jest zarówno kompresowane metodą XZ i szyfrowane.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

Odwołujący nie posiada wymaganej pozwolenia na dostęp do katalogu.

ArgumentException

destinationDirectory’ contains invalid characters such as “, >, <, or |.

PathTooLongException

Określona droga przekracza maksymalną długość określoną przez system.

ObjectDisposedException

Archiwum zostało usunięte.

 Polski