Class Archive

Class Archive

A név: Aspose.Zip Összefoglaló: Aspose.Zip.dll (25.5.0)

Ez az osztály egy zip archív fájlt képvisel. Használja, hogy készítsen, kivonja vagy frissítse a zip-fájlokat.

public class Archive : IArchive, IDisposable

Inheritance

object Archive

Implements

IArchive , IDisposable

Örökletes tagok

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

Constructors

Archive(ArchiveEntrySettings)

Kezdődik az Aspose.Zip.Archive osztály egy új példája opcionális beállításokkal a bejegyzéseihez.

public Archive(ArchiveEntrySettings newEntrySettings = null)

Parameters

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt az újonnan hozzáadott Aspose.Zip.ArchiveEntry elemeket.Ha nem szerepel, akkor a leggyakoribb Deflate kompresszió titkosítás nélkül használható.

Examples

Az alábbi példa azt mutatja, hogyan kell tömöríteni egy fájlt az alapértelmezett beállításokkal.

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

Archive(Áramlat, ArchiveLoadOptions, ArchiveEntrySettings)

Kezdeményez egy új példát az Aspose.Zip.Archive osztály és készít egy bejegyzés listát lehet kivonni az archívumból.

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

Parameters

sourceStream Stream

Az archívum forrása.

loadOptions ArchiveLoadOptions

A meglévő archívumok feltöltésének lehetőségei.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt az újonnan hozzáadott Aspose.Zip.ArchiveEntry elemeket.Ha nem szerepel, akkor a leggyakoribb Deflate kompresszió titkosítás nélkül használható.

Examples

A következő példa titkosított archívumot szerez ki, majd az első bejegyzést a .

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

Ez az építő nem dekompresszi a bejegyzést. lásd Aspose.Zip.ArchiveEntry.Open(System.String) módszer dekompressziót.

Exceptions

ArgumentException

sourceStream’ is not seekable.

InvalidDataException

Az AES titkosítója ellentétes a WinZip tömörítési módszerrel.

Archive(forrás, ArchiveLoadOptions, ArchiveEntrySettings)

Kezdeményez egy új példát az Aspose.Zip.Archive osztály és készít egy bejegyzés listát lehet kivonni az archívumból.

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

Parameters

path string

A teljes mértékben képzett vagy relatív út az archív fájlhoz.

loadOptions ArchiveLoadOptions

A meglévő archívumok feltöltésének lehetőségei.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt az újonnan hozzáadott Aspose.Zip.ArchiveEntry elemeket.Ha nem szerepel, akkor a leggyakoribb Deflate kompresszió titkosítás nélkül használható.

Examples

A következő példa titkosított archívumot szerez ki, majd az első bejegyzést a .

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

Ez az építő nem dekompresszi a bejegyzést. lásd Aspose.Zip.ArchiveEntry.Open(System.String) módszer dekompressziót.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

A hívó nem rendelkezik a szükséges hozzáférési engedélygel.

ArgumentException

A path" üres, csak fehér helyeket tartalmaz, vagy nem érvényes karaktereket tartalmaz.

UnauthorizedAccessException

A path" fájlhoz való hozzáférés elutasításra kerül.

PathTooLongException

A meghatározott path", fájlnév, vagy mindkettő meghaladja a rendszer által meghatározott maximális hosszúságot. Például a Windows-alapú platformokon az útvonalnak kevesebbnek kell lennie, mint 248 karakter, és a fájlnévnek kevesebbnek kell lennie, mint 260 karakter.

NotSupportedException

A path’ fájl tartalmaz egy oszlopot (:) a sor közepén.

FileNotFoundException

A fájlt nem találták meg.

DirectoryNotFoundException

A kijelölt út nem érvényes, például egy mappátlan vezérlésen.

IOException

A fájl már nyitva van.

InvalidDataException

A fájl korrupt.

Archive(A string, a string[], ArchiveLoadOptions)

Kezdeményez egy új példát az Aspose.Zip.Archive osztály a multi-volume zip archívum és összetétele egy bejegyzés listát lehet kivonni az archívumból.

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

Parameters

mainSegment string

Út a multi-volume archívum utolsó szegmenséhez a központi címkével.

Általában ez a szegmens *.zip kiterjesztése és kisebb, mint mások.

segmentsInOrder string []

Utazás minden szegmens, de az utolsó multi-volume zip archívum betartja a rendet.

Általában filename.z01, filename.z02, …, filename.z(n-1) nevet kaptak.

loadOptions ArchiveLoadOptions

A meglévő archívumok feltöltésének lehetőségei.

Examples

Ez a minta három szegmensű archívumot ad ki egy címkéhez.

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

Exceptions

EndOfStreamException

Nem lehet feltölteni a ZIP címkéket, mert a megadott fájlokat korrupt.

Properties

Entries

Kap bejegyzéseit Aspose.Zip.ArchiveEntry típus alkotja az archívumot.

public ReadOnlyCollection<archiveentry> Entries { get; }

ingatlan értéke

ReadOnlyCollection < ArchiveEntry >

NewEntrySettings

Kompresszió és titkosítási beállítások használt az újonnan hozzáadott Aspose.Zip.ArchiveEntry elemeket.

public ArchiveEntrySettings NewEntrySettings { get; }

ingatlan értéke

ArchiveEntrySettings

Methods

CreateEntries(Részletesebben Bool, Bool)

Adja meg az archívumban az összes fájlt és címkéket ismétlődően az adott címkén.

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

Parameters

directory DirectoryInfo

A kompressziós kézikönyv.

includeRootDirectory bool

Megmutatja, hogy magában foglalja-e a gyökérdirektorát vagy sem.

Returns

Archive

Az archívum összetett bejegyzésekkel rendelkezik.

Examples

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

Exceptions

DirectoryNotFoundException

A directory" útvonal nem érvényes, például nem térképezett lemezre.

SecurityException

A hívó nem rendelkezik a directory’hoz való hozzáféréshez szükséges engedélygel.

CreateEntries(Szilveszter, Bool)

Adja meg az archívumban az összes fájlt és címkéket ismétlődően az adott címkén.

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

Parameters

sourceDirectory string

A kompressziós kézikönyv.

includeRootDirectory bool

Megmutatja, hogy magában foglalja-e a gyökérdirektorát vagy sem.

Returns

Archive

Az archívum összetett bejegyzésekkel rendelkezik.

Examples

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

CreateEntry(szál, szál, bool, ArchiveEntrySettings)

Hozzon létre egy egységes bejegyzést az archívumban.

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

Parameters

name string

A bejárat neve.

path string

Az új fájl teljes körű elszámoltathatósága, vagy az összehasonlító fájl neve.

openImmediately bool

Igaz, ha azonnal megnyitja a fájlt, különben megnyitja a fájlt az archív mentés.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt hozzáadott Aspose.Zip.ArchiveEntry elem.

Returns

ArchiveEntry

Zip bejárati eljárás.

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

A paraméterben megadott fájl neve nem befolyásolja a bejegyzés nevét.

Ha a fájl azonnal megnyílik a paraméterrel, akkor az archívum mentéséig blokkolódik.

Exceptions

ArgumentNullException

path’ is null.

SecurityException

A hívó nem rendelkezik a szükséges hozzáférési engedélygel.

ArgumentException

A path" üres, csak fehér helyeket tartalmaz, vagy nem érvényes karaktereket tartalmaz.

UnauthorizedAccessException

A path" fájlhoz való hozzáférés elutasításra kerül.

PathTooLongException

A meghatározott path", fájlnév, vagy mindkettő meghaladja a rendszer által meghatározott maximális hosszúságot. Például a Windows-alapú platformokon az útvonalnak kevesebbnek kell lennie, mint 248 karakter, és a fájlnévnek kevesebbnek kell lennie, mint 260 karakter.

NotSupportedException

A path’ fájl tartalmaz egy oszlopot (:) a sor közepén.

CreateEntry(String, Áramlat, ArchiveEntrySettings)

Hozzon létre egy egységes bejegyzést az archívumban.

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

Parameters

name string

A bejárat neve.

source Stream

A belépési áram a belépéshez.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt hozzáadott Aspose.Zip.ArchiveEntry elem.

Returns

ArchiveEntry

Zip bejárati eljárás.

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(szalag, FileInfo, bool, ArchiveEntrySettings)

Hozzon létre egy egységes bejegyzést az archívumban.

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

Parameters

name string

A bejárat neve.

fileInfo FileInfo

A fájl metadata nyomtatásra kerül.

openImmediately bool

Igaz, ha azonnal megnyitja a fájlt, különben megnyitja a fájlt az archív mentés.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt hozzáadott Aspose.Zip.ArchiveEntry elem.

Returns

ArchiveEntry

Zip bejárati eljárás.

Examples

Készítsen archívumot a különböző titkosítási módszerekkel és jelszavakkal titkosított bejegyzésekkel.

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

A paraméterben megadott fájl neve nem befolyásolja a bejegyzés nevét.

Ha a fájl azonnal megnyílik a paraméterrel, akkor az archívum mentéséig blokkolódik.

Exceptions

UnauthorizedAccessException

fileInfo’ is read-only or is a directory.

DirectoryNotFoundException

A kijelölt út nem érvényes, például egy mappátlan vezérlésen.

IOException

A fájl már nyitva van.

CreateEntry(szál, Stream, ArchiveEntrySettings, FileSystemInfo)

Hozzon létre egy egységes bejegyzést az archívumban.

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

Parameters

name string

A bejárat neve.

source Stream

A belépési áram a belépéshez.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt hozzáadott Aspose.Zip.ArchiveEntry elem.

fileInfo FileSystemInfo

A fájl vagy a mappa metadata nyomtatásra kerül.

Returns

ArchiveEntry

Zip bejárati eljárás.

Examples

Készítsen archívumot titkosított bejegyzéssel.

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

A paraméterben megadott fájl neve nem befolyásolja a bejegyzés nevét.

lehet hivatkozni a System.IO.DirectoryInfo, ha a bejegyzés a címkével.

Exceptions

InvalidOperationException

Mind a source’ és a fileInfo’ null vagy a source’ null, és a fileInfo’ a címkéhez tartozik.

CreateEntry(Részletesebben Func, ArchiveEntrySettings)

Hozzon létre egy egységes bejegyzést az archívumban.

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

Parameters

name string

A bejárat neve.

streamProvider Func < Stream >

A módszer, amely a bejárati áramot a bejárathoz nyújtja.

newEntrySettings ArchiveEntrySettings

Kompresszió és titkosítási beállítások használt hozzáadott Aspose.Zip.ArchiveEntry elem.

Returns

ArchiveEntry

Zip bejárati eljárás.

Examples

Készítsen archívumot titkosított bejegyzéssel.

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

Ez a módszer a .NET Framework 4.0 és újabb verziójára, valamint a .NET Standard 2.0 verziójára vonatkozik.

DeleteEntry(ArchiveEntry)

Eltávolítja a konkrét bejegyzés első megjelenését a bejegyzéslistából.

public Archive DeleteEntry(ArchiveEntry entry)

Parameters

entry ArchiveEntry

A bejegyzést a bejegyzési listából kell eltávolítani.

Returns

Archive

Az archívumot a bejárattal törölték.

Examples

Íme, hogyan lehet eltávolítani az összes bejegyzés kivéve az utolsó:

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

Az archívum megszűnt.

DeleteEntry(int)

Távolítsa el a bejegyzést a bejegyzési listából index szerint.

public Archive DeleteEntry(int entryIndex)

Parameters

entryIndex int

A nulla-alapú index a bejárat eltávolítására.

Returns

Archive

Az archívumot a bejárattal törölték.

Examples

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

Exceptions

ObjectDisposedException

Az archívum megszűnt.

ArgumentOutOfRangeException

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

Dispose()

Alkalmazás-meghatározott feladatokat végez, amelyek a nem kezelt erőforrások felszabadításával, felszabadításával vagy újrahasznosításával kapcsolatosak.

public void Dispose()

Dispose(Bóli)

Alkalmazás-meghatározott feladatokat végez, amelyek a nem kezelt erőforrások felszabadításával, felszabadításával vagy újrahasznosításával kapcsolatosak.

protected virtual void Dispose(bool disposing)

Parameters

disposing bool

A kezelt erőforrások megszüntetésére van szükség.

ExtractToDirectory(A string)

Az archívumban lévő összes fájlt a megadott katalógusba kell kivonni.

public void ExtractToDirectory(string destinationDirectory)

Parameters

destinationDirectory string

Az út a címkéhez, hogy a kivont fájlokat helyezze el.

Examples

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

Remarks

Ha a katalógus nem létezik, akkor létre kell hozni.

Exceptions

ArgumentNullException

destinationDirectory’ is null.

PathTooLongException

A meghatározott útvonal, a fájl neve vagy mindkettő meghaladja a rendszer által meghatározott maximális hosszúságot. Például a Windows-alapú platformokon az útvonalaknak kevesebbnek kell lenniük, mint 248 karakter, és a fájlneveknek kevesebbnek kell lenniük, mint 260 karakter.

SecurityException

A hívó nem rendelkezik a meglévő címkéhez való hozzáféréshez szükséges engedéllyel.

NotSupportedException

Ha a kézikönyv nem létezik, az útvonal tartalmaz egy csomópont karaktert (:) amely nem része a lemez címkéjének (“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

Az útvonal által meghatározott kézikönyv egy fájl. -or- A hálózati név nem ismert.

InvalidDataException

Hiba jelszó érkezett. - vagy - Archive is corrupt.

Save(Áramlat, ArchiveSaveOptions)

Megtakarítja az archívumot a megadott áramláshoz.

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

Parameters

outputStream Stream

A cél áramlása.

saveOptions ArchiveSaveOptions

Az archív megtakarítás lehetőségek.

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

írásszerűnek kell lennie.

Exceptions

ArgumentException

outputStream’ is not writable.

ObjectDisposedException

Az archívum megszűnt.

Save(Részletesebben ArchiveSaveOptions)

Az archívumot a megadott célfájlhoz mentheti.

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

Parameters

destinationFileName string

Ha a megadott fájl neve megjelöli a meglévő fájlt, átírásra kerül.

saveOptions ArchiveSaveOptions

Az archív megtakarítás lehetőségek.

Examples

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

Remarks

Az archívumot ugyanolyan úton lehet menteni, mint amilyenről letöltött. azonban ez nem ajánlott, mert ez a megközelítés egy ideiglenes fájlra másolja.

Exceptions

ArgumentNullException

destinationFileName’ is null.

SecurityException

A hívó nem rendelkezik a szükséges hozzáférési engedélygel.

ArgumentException

A destinationFileName’ üres, csak fehér helyeket tartalmaz, vagy nem érvényes karaktereket tartalmaz.

UnauthorizedAccessException

A destinationFileName" fájlhoz való hozzáférést elutasítják.

PathTooLongException

A meghatározott destinationFileName’, fájlnév, vagy mindkettő meghaladja a rendszer által meghatározott maximális hosszúságot.Például a Windows-alapú platformokon az útvonalnak kevesebbnek kell lennie, mint 248 karakter, és a fájlnévnek kevesebbnek kell lennie, mint 260 karakter.

NotSupportedException

A destinationFileName’ fájl tartalmaz egy oszlopot (:) a sor közepén.

FileNotFoundException

A fájlt nem találták meg.

DirectoryNotFoundException

A kijelölt út nem érvényes, például egy mappátlan vezérlésen.

IOException

A fájl már nyitva van.

SaveSplit(szál, SplitArchiveSaveOptions)

Megtakarítja a multi-volume archívumot a megadott rendeltetési címkéhez.

public void SaveSplit(string destinationDirectory, SplitArchiveSaveOptions options)

Parameters

destinationDirectory string

Az út a címkéhez, ahol az archív szegmenseket kell létrehozni.

options SplitArchiveSaveOptions

Az archív tárolási lehetőségek, beleértve a fájlnevét is.

Examples

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

Remarks

Ez a módszer több () fájlt alkot filename.z01, filename.z02, …, filename.z(n-1), filename.zip.

Nem lehet meglévő archívum multi-volume.

Exceptions

InvalidOperationException

Ez az archívum a meglévő forrásból nyílik meg.

NotSupportedException

Ez az archívum mind XZ módszerrel kompresszált, mind titkosított.

ArgumentNullException

destinationDirectory’ is null.

SecurityException

A hívó nem rendelkezik a szükséges hozzáférési engedéllyel a címkéhez.

ArgumentException

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

PathTooLongException

A meghatározott útvonal meghaladja a rendszer által meghatározott maximális hosszát.

ObjectDisposedException

Az archívum megszűnt.

 Magyar