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
Implémente
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
sourceStream
est nul.
sourceStream
n’est pas seekable.
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
path
est nul.
L’appelant n’a pas la permission requise pour accéder.
Le path
est vide, ne contient que des espaces blancs ou contient des caractères invalides.
L’accès au fichier path
est refusé.
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.
Le fichier à path
contient deux-points (:) au milieu de la chaîne.
Le fichier est introuvable.
Le chemin spécifié est invalide, par exemple, s’il se trouve sur un lecteur non mappé.
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>
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
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
sourceDirectory
est nul.
L’appelant n’a pas la permission requise pour accéder à sourceDirectory
.
sourceDirectory
contient des caractères invalides tels que “, <, >, ou |.
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.
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
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
directory
est nul.
L’appelant n’a pas la permission requise pour accéder à directory
.
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
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
name
est nul.
name
est vide.
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
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
sourcePath
est nul.
L’appelant n’a pas la permission requise pour accéder.
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.
L’accès au fichier sourcePath
est refusé.
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.
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
Instance d’entrée Cpio.
Exemples
using (var archive = new CpioArchive())
{
archive.CreateEntry("data.bin", File.OpenRead("data.bin"));
archive.Save("archive.cpio");
}
Exceptions
name
est nul.
source
est nul.
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
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 > 1)
archive.DeleteEntry(archive.Entries[0]);
archive.Save(outputCpioFile);
}
Exceptions
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
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
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
path est nul
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.
L’appelant n’a pas la permission requise pour accéder au répertoire existant.
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:").
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 (:).
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
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.
destinationFileName
est nul.
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.
Le destinationFileName
spécifié est invalide, (par exemple, il se trouve sur un lecteur non mappé).
Une erreur d’E/S s’est produite lors de l’ouverture du fichier.
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.
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
output
est nul.
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
output
est nul.
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.
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
output
est nul.
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
output
est nul.
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
output
est nul.
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
output
est nul.
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");
}
}