Class CpioArchive
Namespace: Aspose.Zip.Cpio
Assembly: Aspose.Zip.dll (25.1.0)
Tato třída představuje cpio archivační soubor.
public class CpioArchive : IArchive, IDisposable
Dědičnost
Implementuje
Děděné členy
object.GetType(), object.MemberwiseClone(), object.ToString(), object.Equals(object?), object.Equals(object?, object?), object.ReferenceEquals(object?, object?), object.GetHashCode()
Konstruktor
CpioArchive()
Inicializuje novou instanci třídy Aspose.Zip.Cpio.CpioArchive.
public CpioArchive()
Příklady
Následující příklad ukazuje, jak komprimovat soubor.
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
CpioArchive(Stream)
Inicializuje novou instanci třídy Aspose.Zip.Cpio.CpioArchive a vytváří seznam položek, které lze extrahovat z archivu.
public CpioArchive(Stream sourceStream)
Parametry
sourceStream
Stream
Zdroj archivu. Musí být vyhledatelný.
Příklady
Následující příklad ukazuje, jak extrahovat všechny položky do adresáře.
using (var archive = new CpioArchive(File.OpenRead("archive.cpio")))
{
archive.ExtractToDirectory("C:\extracted");
}
Poznámky
Tento konstruktor nevybalí žádnou položku. Viz metoda Aspose.Zip.Cpio.CpioEntry.Open pro vybalení.
Výjimky
sourceStream
je null.
sourceStream
není vyhledatelný.
sourceStream
není platný cpio archiv.
CpioArchive(string)
Inicializuje novou instanci třídy Aspose.Zip.Cpio.CpioArchive a vytváří seznam položek, které lze extrahovat z archivu.
public CpioArchive(string path)
Parametry
path
string
Cesta k archivačnímu souboru.
Příklady
Následující příklad ukazuje, jak extrahovat všechny položky do adresáře.
using (var archive = new CpioArchive("archive.cpio"))
{
archive.ExtractToDirectory("C:\extracted");
}
Poznámky
Tento konstruktor nevybalí žádnou položku. Viz metoda Aspose.Zip.Cpio.CpioEntry.Open pro vybalení.
Výjimky
path
je null.
Volající nemá požadovaná 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 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 je na nepřipojeném disku.
Soubor je již otevřen.
Vlastnosti
Entries
Získá položky typu Aspose.Zip.Cpio.CpioEntry, které tvoří archiv.
public ReadOnlyCollection<cpioentry> Entries { get; }
Hodnota vlastnosti
ReadOnlyCollection<CpioEntry>
Metody
CreateEntries(string, bool)
Přidá do archivu všechny soubory a adresáře rekurzivně v daném adresáři.
public CpioArchive CreateEntries(string sourceDirectory, bool includeRootDirectory = true)
Parametry
sourceDirectory
string
Adresář k zkomprimování.
includeRootDirectory
bool
Indikuje, zda zahrnout kořenový adresář nebo ne.
Vrací
Instanci položky Cpio.
Příklady
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries("C:\folder", false);
archive.Save(cpioFile);
}
}
Výjimky
sourceDirectory
je null.
Volající nemá požadovaná oprávnění pro přístup k sourceDirectory
.
sourceDirectory
obsahuje neplatné znaky jako “, <, > nebo |.
Zadaná cesta, název souboru nebo obojí překračuje maximální délku definovanou systémem. Například na platformách Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků. Zadaná cesta, název souboru nebo obojí jsou příliš dlouhé.
sourceDirectory
představuje soubor, nikoli adresář.
CreateEntries(DirectoryInfo, bool)
Přidá do archivu všechny soubory a adresáře rekurzivně v daném adresáři.
public CpioArchive CreateEntries(DirectoryInfo directory, bool includeRootDirectory = true)
Parametry
directory
DirectoryInfo
Adresář k zkomprimování.
includeRootDirectory
bool
Indikuje, zda zahrnout kořenový adresář nebo ne.
Vrací
Instanci položky Cpio.
Příklady
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
archive.Save(cpioFile);
}
}
Výjimky
directory
je null.
Volající nemá požadovaná oprávnění pro přístup k directory
.
directory
představuje soubor, nikoli adresář.
CreateEntry(string, FileInfo, bool)
Vytvoří jednotlivou položku v archivu.
public CpioEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)
Parametry
name
string
Název položky.
fileInfo
FileInfo
Metadata souboru nebo složky, která má být zkomprimována.
openImmediately
bool
True, pokud otevřít soubor okamžitě, jinak otevřít soubor při ukládání archivu.
Vrací
Instanci položky Cpio.
Příklady
FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new CpioArchive())
{
archive.CreateEntry("test.bin", fileInfo);
archive.Save("archive.cpio");
}
Poznámky
Pokud je soubor otevřen okamžitě s parametrem openImmediately
, zůstane zablokován, dokud není archiv uvolněn.
Výjimky
name
je null.
name
je prázdný.
fileInfo
je null.
CreateEntry(string, string, bool)
Vytvoří jednotlivou položku v archivu.
public CpioEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)
Parametry
name
string
Název položky.
sourcePath
string
Cesta k souboru, který má být zkomprimován.
openImmediately
bool
True, pokud otevřít soubor okamžitě, jinak otevřít soubor při ukládání archivu.
Vrací
Instanci položky Cpio.
Příklady
using (var archive = new CpioArchive())
{
archive.CreateEntry("first.bin", "data.bin");
archive.Save("archive.cpio");
}
Poznámky
Název položky je nastaven pouze v parametru name
. Název souboru uvedený v parametru sourcePath
nemá vliv na název položky.
Pokud je soubor otevřen okamžitě s parametrem openImmediately
, zůstane zablokován, dokud není archiv uvolněn.
Výjimky
sourcePath
je null.
Volající nemá požadovaná oprávnění pro přístup.
sourcePath
je prázdný, obsahuje pouze bílé znaky nebo obsahuje neplatné znaky. - nebo - Název souboru jako součást name
přesahuje 100 symbolů.
Přístup k souboru sourcePath
je odepřen.
Zadaná sourcePath
, název souboru nebo obojí překračuje maximální délku definovanou systémem. Například na platformách Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků. - nebo - name
je příliš dlouhé pro cpio.
Soubor na sourcePath
obsahuje dvojtečku (:) uprostřed řetězce.
CreateEntry(string, Stream)
Vytvoří jednotlivou položku v archivu.
public CpioEntry CreateEntry(string name, Stream source)
Parametry
name
string
Název položky.
source
Stream
Vstupní proud pro položku.
Vrací
Instanci položky Cpio.
Příklady
using (var archive = new CpioArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.cpio");
}
Výjimky
name
je null.
source
je null.
name
je prázdný.
DeleteEntry(CpioEntry)
Odstraní první výskyt konkrétní položky ze seznamu položek.
public CpioArchive DeleteEntry(CpioEntry entry)
Parametry
entry
CpioEntry
Položka, kterou je třeba odstranit ze seznamu položek.
Vrací
Instanci položky Cpio.
Příklady
Zde je, jak můžete odstranit všechny položky kromě poslední:
using (var archive = new CpioArchive("archive.cpio"))
{
while (archive.Entries.Count > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputCpioFile);
}
Výjimky
entry
je null.
DeleteEntry(int)
Odstraní položku ze seznamu položek podle indexu.
public CpioArchive DeleteEntry(int entryIndex)
Parametry
entryIndex
int
Nula-číslený index položky, kterou je třeba odstranit.
Vrací
Archiv s odstraněnou položkou.
Příklady
using (var archive = new CpioArchive("two_files.cpio"))
{
archive.DeleteEntry(0);
archive.Save("single_file.cpio");
}
Výjimky
entryIndex
je menší než 0. - nebo - entryIndex
je rovno nebo větší než Entries
počet.
Dispose()
Provádí úkoly definované aplikací spojené s uvolněním, uvolněním nebo resetováním neřízených prostředků.
public void Dispose()
Dispose(bool)
Provádí úkoly definované aplikací spojené s uvolněním, uvolněním nebo resetováním neřízených prostředků.
protected virtual void Dispose(bool disposing)
Parametry
disposing
bool
Zda by měly být uvolněny řízené prostředky.
ExtractToDirectory(string)
Extrahuje všechny soubory v archivu do zadaného adresáře.
public void ExtractToDirectory(string destinationDirectory)
Parametry
destinationDirectory
string
Cesta k adresáři, do kterého budou umístěny extrahované soubory.
Příklady
using (var archive = new CpioArchive("archive.cpio"))
{
archive.ExtractToDirectory("C:\extracted");
}
Poznámky
Pokud adresář neexistuje, bude vytvořen.
Výjimky
cesta je null
Zadaná cesta, název souboru nebo obojí překračuje maximální délku definovanou systémem. Například na platformách Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Volající nemá požadovaná oprávnění pro přístup k existujícímu adresáři.
Pokud adresář neexistuje, cesta obsahuje znak dvojtečky (:) který není součástí označení disku (“C:").
cesta je nulový řetězec, obsahuje pouze bílé znaky nebo obsahuje jeden nebo více neplatných znaků. Neplatné znaky můžete zjistit pomocí metody System.IO.Path.GetInvalidPathChars. - nebo - cesta je předpona, nebo obsahuje pouze znak dvojtečky (:).
Adresář určený cestou je soubor. - nebo - Síťový název není znám.
Save(string, CpioFormat)
Uloží archiv do zadaného cílového souboru.
public void Save(string destinationFileName, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
destinationFileName
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save("archive.cpio");
}
Poznámky
Je možné uložit archiv na stejnou cestu, ze které byl načten. Nicméně, to se nedoporučuje, protože tento přístup používá kopírování do dočasného souboru.
Výjimky
destinationFileName
je nulový řetězec, obsahuje pouze bílé znaky nebo obsahuje jeden nebo více neplatných znaků definovaných systémem System.IO.Path.InvalidPathChars.
destinationFileName
je null.
Zadaná destinationFileName
, název souboru nebo obojí překračuje maximální délku definovanou systémem. Například na platformách Windows musí být cesty kratší než 248 znaků a názvy souborů kratší než 260 znaků.
Zadaná destinationFileName
je neplatná, (například je na nepřipojeném disku).
Při otevírání souboru došlo k chybě I/O.
destinationFileName
určil soubor, který je pouze pro čtení a přístup není povolen. - nebo - cesta určuje adresář. - nebo - Volající nemá požadovaná oprávnění.
destinationFileName
je ve neplatném formátu.
Save(Stream, CpioFormat)
Uloží archiv do poskytnutého proudu.
public void Save(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry1", "data.bin");
archive.Save(cpioFile);
}
}
Poznámky
output
musí být zapisovatelný.
Výjimky
output
je null.
output
není zapisovatelný. - nebo - output
je stejný proud, ze kterého extrahujeme.
- NEBO -
Uložení archivu v cpioFormat
není možné z důvodu formátových omezení.
SaveGzipped(Stream, CpioFormat)
Uloží archiv do proudu s gzip kompresí.
public void SaveGzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream result = File.OpenWrite("result.cpio.gz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped(result);
}
}
}
Poznámky
output
musí být zapisovatelný.
Výjimky
output
je null.
output
není zapisovatelný.
SaveGzipped(string, CpioFormat)
Uloží archiv do souboru podle cesty s gzip kompresí.
public void SaveGzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped("result.cpio.gz");
}
}
SaveLZMACompressed(Stream, CpioFormat)
Uloží archiv do proudu s LZMA kompresí.
public void SaveLZMACompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream result = File.OpenWrite("result.cpio.lzma"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLZMACompressed(result);
}
}
}
Poznámky
output
musí být zapisovatelný.
SaveLZMACompressed(string, CpioFormat)
Uloží archiv do souboru podle cesty s lzma kompresí.
public void SaveLZMACompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveLZMACompressed("result.cpio.lzma");
}
}
Poznámky
Důležité: cpio archiv je složen a poté komprimován v této metodě, jeho obsah je uchováván interně. Dávejte pozor na spotřebu paměti.
SaveLzipped(Stream, CpioFormat)
Uloží archiv do proudu s lzip kompresí.
public void SaveLzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream result = File.OpenWrite("result.cpio.lz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped(result);
}
}
}
Poznámky
output
musí být zapisovatelný.
Výjimky
output
je null.
output
není zapisovatelný.
SaveLzipped(string, CpioFormat)
Uloží archiv do souboru podle cesty s lzip kompresí.
public void SaveLzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveGzipped("result.cpio.lz");
}
}
SaveXzCompressed(Stream, CpioFormat, XzArchiveSettings)
Uloží archiv do proudu s xz kompresí.
public void SaveXzCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
settings
XzArchiveSettings
Sada nastavení konkrétní xz archivu: velikost slovníku, velikost bloku, typ kontroly.
Příklady
using (FileStream result = File.OpenWrite("result.cpio.xz"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveXzCompressed(result);
}
}
}
Poznámky
output
musí být zapisovatelný.
Výjimky
output
je null.
output
není zapisovatelný.
SaveXzCompressed(string, CpioFormat, XzArchiveSettings)
Uloží archiv do cesty podle cesty s xz kompresí.
public void SaveXzCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)
Parametry
path
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
settings
XzArchiveSettings
Sada nastavení konkrétní xz archivu: velikost slovníku, velikost bloku, typ kontroly.
Příklady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveXzCompressed("result.cpio.xz");
}
}
SaveZCompressed(Stream, CpioFormat)
Uloží archiv do proudu s Z kompresí.
public void SaveZCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream result = File.OpenWrite("result.cpio.Z"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZCompressed(result);
}
}
}
Poznámky
output
musí být zapisovatelný.
Výjimky
output
je null.
output
není zapisovatelný.
SaveZCompressed(string, CpioFormat)
Uloží archiv do cesty podle cesty s Z kompresí.
public void SaveZCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZCompressed("result.cpio.Z");
}
}
SaveZstandard(Stream, CpioFormat)
Uloží archiv do proudu s Zstandard kompresí.
public void SaveZstandard(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
output
Stream
Cílový proud.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream result = File.OpenWrite("result.cpio.zst"))
{
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZstandard(result);
}
}
}
Poznámky
output
musí být zapisovatelný.
Výjimky
output
je null.
output
není zapisovatelný.
SaveZstandard(string, CpioFormat)
Uloží archiv do souboru podle cesty s Zstandard kompresí.
public void SaveZstandard(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)
Parametry
path
string
Cesta archivu, který má být vytvořen. Pokud zadaný název souboru odkazuje na existující soubor, bude přepsán.
cpioFormat
CpioFormat
Definuje formát hlavičky cpio.
Příklady
using (FileStream source = File.Open("data.bin", FileMode.Open, FileAccess.Read))
{
using (var archive = new CpioArchive())
{
archive.CreateEntry("entry.bin", source);
archive.SaveZstandard("result.cpio.zst");
}
}