Class CpioArchive

Class CpioArchive

Namespace: Aspose.Zip.Cpio
Assembly: Aspose.Zip.dll (25.1.0)

Cette classe représente un fichier d’archive cpio.

public class CpioArchive : IArchive, IDisposable

Héritage

objectCpioArchive

Implémente

IArchive, IDisposable

Membres hérités

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

Constructeurs

CpioArchive()

Initialise une nouvelle instance de la classe Aspose.Zip.Cpio.CpioArchive.

public CpioArchive()

Exemples

L'exemple suivant montre comment compresser un fichier.

using (var archive = new CpioArchive())
{
    archive.CreateEntry("first.bin", "data.bin");
    archive.Save("archive.cpio");
}

CpioArchive(Stream)

Initialise une nouvelle instance de la classe Aspose.Zip.Cpio.CpioArchive et compose la liste des entrées pouvant être extraites de l’archive.

public CpioArchive(Stream sourceStream)

Paramètres

sourceStream Stream

La source de l’archive. Elle doit être seekable.

Exemples

L'exemple suivant montre comment extraire toutes les entrées dans un répertoire.

using (var archive = new CpioArchive(File.OpenRead("archive.cpio")))
{ 
   archive.ExtractToDirectory("C:\extracted");
}

Remarques

Ce constructeur ne décompresse aucune entrée. Voir la méthode Aspose.Zip.Cpio.CpioEntry.Open pour la décompression.

Exceptions

ArgumentNullException

sourceStream est nul.

ArgumentException

sourceStream n’est pas seekable.

InvalidDataException

sourceStream n’est pas une archive cpio valide.

CpioArchive(string)

Initialise une nouvelle instance de la classe Aspose.Zip.Cpio.CpioArchive et compose la liste des entrées pouvant être extraites de l’archive.

public CpioArchive(string path)

Paramètres

path string

Le chemin vers le fichier d’archive.

Exemples

L'exemple suivant montre comment extraire toutes les entrées dans un répertoire.

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

Remarques

Ce constructeur ne décompresse aucune entrée. Voir la méthode Aspose.Zip.Cpio.CpioEntry.Open pour la décompression.

Exceptions

ArgumentNullException

path est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder.

ArgumentException

Le path est vide, ne contient que des espaces blancs ou contient des caractères invalides.

UnauthorizedAccessException

L’accès au fichier path est refusé.

PathTooLongException

Le path, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes Windows, les chemins doivent comporter moins de 248 caractères, et les noms de fichiers moins de 260 caractères.

NotSupportedException

Le fichier à path contient deux-points (:) au milieu de la chaîne.

FileNotFoundException

Le fichier est introuvable.

DirectoryNotFoundException

Le chemin spécifié est invalide, par exemple, s’il se trouve sur un lecteur non mappé.

IOException

Le fichier est déjà ouvert.

Propriétés

Entries

Obtient les entrées de type Aspose.Zip.Cpio.CpioEntry constituant l’archive.

public ReadOnlyCollection<cpioentry> Entries { get; }

Valeur de la propriété

ReadOnlyCollection<CpioEntry&gt;

Méthodes

CreateEntries(string, bool)

Ajoute à l’archive tous les fichiers et répertoires de manière récursive dans le répertoire donné.

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

Paramètres

sourceDirectory string

Répertoire à compresser.

includeRootDirectory bool

Indique s’il faut inclure le répertoire racine lui-même ou non.

Retourne

CpioArchive

Instance d’entrée Cpio.

Exemples

using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntries("C:\folder", false);
        archive.Save(cpioFile);
    }
}

Exceptions

ArgumentNullException

sourceDirectory est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder à sourceDirectory.

ArgumentException

sourceDirectory contient des caractères invalides tels que “, <, >, ou |.

PathTooLongException

Le chemin spécifié, le nom de fichier, ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes Windows, les chemins doivent comporter moins de 248 caractères, et les noms de fichiers moins de 260 caractères. Le chemin spécifié, le nom de fichier, ou les deux sont trop longs.

IOException

sourceDirectory représente un fichier, pas un répertoire.

CreateEntries(DirectoryInfo, bool)

Ajoute à l’archive tous les fichiers et répertoires de manière récursive dans le répertoire donné.

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

Paramètres

directory DirectoryInfo

Répertoire à compresser.

includeRootDirectory bool

Indique s’il faut inclure le répertoire racine lui-même ou non.

Retourne

CpioArchive

Instance d’entrée Cpio.

Exemples

using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntries(new DirectoryInfo("C:\folder"), false);
        archive.Save(cpioFile);
    }
}

Exceptions

ArgumentNullException

directory est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder à directory.

IOException

directory représente un fichier, pas un répertoire.

CreateEntry(string, FileInfo, bool)

Crée une entrée unique dans l’archive.

public CpioEntry CreateEntry(string name, FileInfo fileInfo, bool openImmediately = false)

Paramètres

name string

Le nom de l’entrée.

fileInfo FileInfo

Les métadonnées du fichier ou du dossier à compresser.

openImmediately bool

Vrai si le fichier doit être ouvert immédiatement, sinon il sera ouvert lors de l’enregistrement de l’archive.

Retourne

CpioEntry

Instance d’entrée Cpio.

Exemples

FileInfo fileInfo = new FileInfo("data.bin");
using (var archive = new CpioArchive())
{
    archive.CreateEntry("test.bin", fileInfo);
    archive.Save("archive.cpio");
}

Remarques

Si le fichier est ouvert immédiatement avec le paramètre openImmediately, il sera bloqué jusqu'à ce que l'archive soit disposée.

Exceptions

ArgumentNullException

name est nul.

ArgumentException

name est vide.

ArgumentNullException

fileInfo est nul.

CreateEntry(string, string, bool)

Crée une entrée unique dans l’archive.

public CpioEntry CreateEntry(string name, string sourcePath, bool openImmediately = false)

Paramètres

name string

Le nom de l’entrée.

sourcePath string

Chemin vers le fichier à compresser.

openImmediately bool

Vrai si le fichier doit être ouvert immédiatement, sinon il sera ouvert lors de l’enregistrement de l’archive.

Retourne

CpioEntry

Instance d’entrée Cpio.

Exemples

using (var archive = new CpioArchive())
{
    archive.CreateEntry("first.bin", "data.bin");
    archive.Save("archive.cpio");
}

Remarques

Le nom de l'entrée est uniquement défini dans le paramètre name. Le nom de fichier fourni dans le paramètre sourcePath n'affecte pas le nom de l'entrée.

Si le fichier est ouvert immédiatement avec le paramètre openImmediately, il sera bloqué jusqu'à ce que l'archive soit disposée.

Exceptions

ArgumentNullException

sourcePath est nul.

SecurityException

L’appelant n’a pas la permission requise pour accéder.

ArgumentException

Le sourcePath est vide, ne contient que des espaces blancs, ou contient des caractères invalides. - ou - Le nom de fichier, en tant que partie de name, dépasse 100 symboles.

UnauthorizedAccessException

L’accès au fichier sourcePath est refusé.

PathTooLongException

Le sourcePath, le nom de fichier, ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes Windows, les chemins doivent comporter moins de 248 caractères, et les noms de fichiers moins de 260 caractères. - ou - name est trop long pour cpio.

NotSupportedException

Le fichier à sourcePath contient un deux-points (:) au milieu de la chaîne.

CreateEntry(string, Stream)

Crée une entrée unique dans l’archive.

public CpioEntry CreateEntry(string name, Stream source)

Paramètres

name string

Le nom de l’entrée.

source Stream

Le flux d’entrée pour l’entrée.

Retourne

CpioEntry

Instance d’entrée Cpio.

Exemples

using (var archive = new CpioArchive())
{
    archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
    archive.Save("archive.cpio");
}

Exceptions

ArgumentNullException

name est nul.

ArgumentNullException

source est nul.

ArgumentException

name est vide.

DeleteEntry(CpioEntry)

Supprime la première occurrence d’une entrée spécifique de la liste des entrées.

public CpioArchive DeleteEntry(CpioEntry entry)

Paramètres

entry CpioEntry

L’entrée à supprimer de la liste des entrées.

Retourne

CpioArchive

Instance d’entrée Cpio.

Exemples

Voici comment vous pouvez supprimer toutes les entrées sauf la dernière :

using (var archive = new CpioArchive("archive.cpio"))
{
    while (archive.Entries.Count &gt; 1)
        archive.DeleteEntry(archive.Entries[0]);
    archive.Save(outputCpioFile);
}

Exceptions

ArgumentNullException

entry est nul.

DeleteEntry(int)

Supprime l’entrée de la liste des entrées par index.

public CpioArchive DeleteEntry(int entryIndex)

Paramètres

entryIndex int

L’index basé sur zéro de l’entrée à supprimer.

Retourne

CpioArchive

L’archive avec l’entrée supprimée.

Exemples

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

Exceptions

ArgumentOutOfRangeException

entryIndex est inférieur à 0.-ou- entryIndex est égal ou supérieur au nombre d’Entries.

Dispose()

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non gérées.

public void Dispose()

Dispose(bool)

Effectue des tâches définies par l’application associées à la libération, à la libération ou à la réinitialisation des ressources non gérées.

protected virtual void Dispose(bool disposing)

Paramètres

disposing bool

Indique si les ressources gérées doivent être libérées.

ExtractToDirectory(string)

Extrait tous les fichiers de l’archive vers le répertoire fourni.

public void ExtractToDirectory(string destinationDirectory)

Paramètres

destinationDirectory string

Le chemin vers le répertoire où placer les fichiers extraits.

Exemples

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

Remarques

Si le répertoire n’existe pas, il sera créé.

Exceptions

ArgumentNullException

path est nul

PathTooLongException

Le chemin spécifié, le nom de fichier ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes Windows, les chemins doivent comporter moins de 248 caractères et les noms de fichiers moins de 260 caractères.

SecurityException

L’appelant n’a pas la permission requise pour accéder au répertoire existant.

NotSupportedException

Si le répertoire n’existe pas, le chemin contient un caractère deux-points (:) qui ne fait pas partie d’une étiquette de lecteur (“C:").

ArgumentException

Le chemin est une chaîne de longueur nulle, ne contient que des espaces blancs, ou contient un ou plusieurs caractères invalides. Vous pouvez interroger les caractères invalides en utilisant la méthode System.IO.Path.GetInvalidPathChars. - ou - le chemin est préfixé par, ou contient, seulement un caractère deux-points (:).

IOException

Le répertoire spécifié par le chemin est un fichier. - ou - Le nom du réseau n’est pas connu.

Save(string, CpioFormat)

Sauvegarde l’archive dans le fichier de destination fourni.

public void Save(string destinationFileName, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

destinationFileName string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

using (var archive = new CpioArchive())
{
    archive.CreateEntry("entry1", "data.bin");        
    archive.Save("archive.cpio");
}

Remarques

Il est possible de sauvegarder une archive au même chemin que celui d'où elle a été chargée. Cependant, cela n'est pas recommandé car cette approche utilise une copie vers un fichier temporaire.

Exceptions

ArgumentException

destinationFileName est une chaîne de longueur nulle, ne contient que des espaces blancs, ou contient un ou plusieurs caractères invalides tels que définis par System.IO.Path.InvalidPathChars.

ArgumentNullException

destinationFileName est nul.

PathTooLongException

Le destinationFileName, le nom de fichier, ou les deux dépassent la longueur maximale définie par le système. Par exemple, sur les plateformes Windows, les chemins doivent comporter moins de 248 caractères, et les noms de fichiers moins de 260 caractères.

DirectoryNotFoundException

Le destinationFileName spécifié est invalide, (par exemple, il se trouve sur un lecteur non mappé).

IOException

Une erreur d’E/S s’est produite lors de l’ouverture du fichier.

UnauthorizedAccessException

destinationFileName spécifie un fichier qui est en lecture seule et l’accès n’est pas en lecture.-ou- le chemin spécifie un répertoire.-ou- L’appelant n’a pas la permission requise.

NotSupportedException

destinationFileName est dans un format invalide.

Save(Stream, CpioFormat)

Sauvegarde l’archive dans le flux fourni.

public void Save(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

using (FileStream cpioFile = File.Open("archive.cpio", FileMode.Create))
{
    using (var archive = new CpioArchive())
    {
        archive.CreateEntry("entry1", "data.bin");        
        archive.Save(cpioFile);
    }
}

Remarques

output doit être inscriptible.

Exceptions

ArgumentNullException

output est nul.

ArgumentException

output n’est pas inscriptible. - ou - output est le même flux dont nous extrayons. - OU - Il est impossible de sauvegarder l’archive dans cpioFormat en raison de restrictions de format.

SaveGzipped(Stream, CpioFormat)

Sauvegarde l’archive dans le flux avec compression gzip.

public void SaveGzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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);
        }
    }
}

Remarques

output doit être inscriptible.

Exceptions

ArgumentNullException

output est nul.

ArgumentException

output n’est pas inscriptible.

SaveGzipped(string, CpioFormat)

Sauvegarde l’archive dans le fichier par chemin avec compression gzip.

public void SaveGzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

path string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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)

Sauvegarde l’archive dans le flux avec compression LZMA.

public void SaveLZMACompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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);
        }
    }
}

Remarques

output doit être inscriptible.

Important : l'archive cpio est composée puis compressée dans cette méthode, son contenu est conservé en interne. Attention à la consommation de mémoire.

SaveLZMACompressed(string, CpioFormat)

Sauvegarde l’archive dans le fichier par chemin avec compression lzma.

public void SaveLZMACompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

path string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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");
    }
}

Remarques

Important : l’archive cpio est composée puis compressée dans cette méthode, son contenu est conservé en interne. Attention à la consommation de mémoire.

SaveLzipped(Stream, CpioFormat)

Sauvegarde l’archive dans le flux avec compression lzip.

public void SaveLzipped(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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);
        }
    }
}

Remarques

output doit être inscriptible.

Exceptions

ArgumentNullException

output est nul.

ArgumentException

output n’est pas inscriptible.

SaveLzipped(string, CpioFormat)

Sauvegarde l’archive dans le fichier par chemin avec compression lzip.

public void SaveLzipped(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

path string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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)

Sauvegarde l’archive dans le flux avec compression xz.

public void SaveXzCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

settings XzArchiveSettings

Ensemble de paramètres spécifiques à l’archive xz : taille du dictionnaire, taille du bloc, type de vérification.

Exemples

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);
        }
    }
}

Remarques

output doit être inscriptible.

Exceptions

ArgumentNullException

output est nul.

ArgumentException

output n’est pas inscriptible.

SaveXzCompressed(string, CpioFormat, XzArchiveSettings)

Sauvegarde l’archive dans le chemin par chemin avec compression xz.

public void SaveXzCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii, XzArchiveSettings settings = null)

Paramètres

path string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

settings XzArchiveSettings

Ensemble de paramètres spécifiques à l’archive xz : taille du dictionnaire, taille du bloc, type de vérification.

Exemples

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)

Sauvegarde l’archive dans le flux avec compression Z.

public void SaveZCompressed(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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);
        }
    }
}

Remarques

output doit être inscriptible.

Exceptions

ArgumentNullException

output est nul.

ArgumentException

output n’est pas inscriptible.

SaveZCompressed(string, CpioFormat)

Sauvegarde l’archive dans le chemin par chemin avec compression Z.

public void SaveZCompressed(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

path string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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)

Sauvegarde l’archive dans le flux avec compression Zstandard.

public void SaveZstandard(Stream output, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

output Stream

Flux de destination.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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);
        }
    }
}

Remarques

output doit être inscriptible.

Exceptions

ArgumentNullException

output est nul.

ArgumentException

output n’est pas inscriptible.

SaveZstandard(string, CpioFormat)

Sauvegarde l’archive dans le fichier par chemin avec compression Zstandard.

public void SaveZstandard(string path, CpioFormat cpioFormat = CpioFormat.OldAscii)

Paramètres

path string

Le chemin de l’archive à créer. Si le nom de fichier spécifié pointe vers un fichier existant, il sera écrasé.

cpioFormat CpioFormat

Définit le format d’en-tête cpio.

Exemples

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");
    }
}
 Français