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
Implements
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
sourceStream’ is not seekable.
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
path’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku path" jest odrzucony.
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.
Plik w path’ zawiera kolumnę (:) w środku paska.
Plik nie został znaleziony.
Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.
Archiwum jest już otwarte.
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
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
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
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
Droga do directory’ jest niewłaściwa, na przykład na bez mapowania dysku.
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
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
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
path’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
Ścieżka " jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku path" jest odrzucony.
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.
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
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
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
fileInfo’ is read-only or is a directory.
Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.
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
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
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
Instancja wejściowa ZIP.
Examples
Zestaw archiwum z szyfrowanym wpisem.
System.Func<Stream> 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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save("last_entry.zip");
}
Exceptions
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
Archiwum z wpisem usunięte.
Examples
using (var archive = new TarArchive("two_files.zip"))
{
archive.DeleteEntry(0);
archive.Save("single_file.zip");
}
Exceptions
Archiwum zostało usunięte.
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
destinationDirectory’ is null.
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.
Odwołujący nie posiada wymaganej pozwolenia na dostęp do istniejącego katalogu.
Jeśli dyrektywa nie istnieje, ścieżka zawiera znak kolumny (:) który nie jest częścią etykiety napędu (“C:”).
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 (:).
Dyskusja określona przez ścieżkę jest plikiem. -or- Nazwa sieci nie jest znana.
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
outputStream’ is not writable.
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
destinationFileName’ is null.
Klient nie posiada wymaganego zezwolenia na dostęp.
destinationFileName’ jest pusta, zawiera tylko białe przestrzenie lub zawiera nieprawidłowe znaky.
Dostęp do pliku destinationFileName’ jest odrzucony.
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.
Plik w adresie destinationFileName’ zawiera kolumnę (:) w środku paska.
Plik nie został znaleziony.
Określona ścieżka jest nieważna, na przykład na nieokreślonym dysku.
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
Archiwum zostało otwarte z istniejącego źródła.
Ten archiwum jest zarówno kompresowane metodą XZ i szyfrowane.
destinationDirectory’ is null.
Odwołujący nie posiada wymaganej pozwolenia na dostęp do katalogu.
destinationDirectory’ contains invalid characters such as “, >, <, or |.
Określona droga przekracza maksymalną długość określoną przez system.
Archiwum zostało usunięte.