Class SevenZipArchiveEntry
Namespace: Aspose.Zip.SevenZip
Assembly: Aspose.Zip.dll (25.1.0)
Représente un fichier unique dans une archive 7z.
public abstract class SevenZipArchiveEntry : IArchiveFileEntry
Héritage
Dérivé
SevenZipArchiveEntryEncrypted, SevenZipArchiveEntryPlain
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()
Remarques
Convertissez une instance d’Aspose.Zip.SevenZip.SevenZipArchiveEntry en Aspose.Zip.SevenZip.SevenZipArchiveEntryEncrypted pour déterminer si l’entrée est chiffrée ou non.
Constructeurs
SevenZipArchiveEntry(SevenZipArchive, string, SevenZipCompressionSettings, Stream, FileAttributes, FileSystemInfo)
Initialise une nouvelle instance de la classe Aspose.Zip.SevenZip.SevenZipArchiveEntry.
protected SevenZipArchiveEntry(SevenZipArchive parent, string name, SevenZipCompressionSettings compressionSettings, Stream source, FileAttributes fileAttributes, FileSystemInfo fileInfo = null)
Paramètres
parent
SevenZipArchive
name
string
Nom de l’entrée.
compressionSettings
SevenZipCompressionSettings
Paramètres pour la compression ou la décompression.
source
Stream
Flux avec les données de l’entrée à compresser ou à décompresser.
fileAttributes
FileAttributes
Attributs du système de fichiers.
fileInfo
FileSystemInfo
Informations sur le fichier ou le répertoire sur lequel se base l’entrée.
Exceptions
Le name
est nul ou vide.
Propriétés
CompressedSize
Obtient la taille du fichier compressé.
public ulong CompressedSize { get; }
Valeur de la propriété
CompressionSettings
Obtient les paramètres pour la compression ou la décompression.
public SevenZipCompressionSettings CompressionSettings { get; }
Valeur de la propriété
FileAttributes
Obtient les attributs du fichier du système hôte.
protected FileAttributes FileAttributes { get; }
Valeur de la propriété
IsDirectory
Obtient une valeur indiquant si l’entrée représente un répertoire.
public bool IsDirectory { get; }
Valeur de la propriété
ModificationTime
Obtient la date et l’heure de la dernière modification.
public DateTime ModificationTime { get; }
Valeur de la propriété
Name
Obtient le nom de l’entrée dans l’archive.
public string Name { get; protected set; }
Valeur de la propriété
Source
Obtient le flux de données source pour l’entrée.
protected Stream Source { get; set; }
Valeur de la propriété
UncompressedSize
Obtient la taille du fichier original.
public ulong UncompressedSize { get; }
Valeur de la propriété
Méthodes
Extract(string, string)
Extrait l’entrée vers le système de fichiers par le chemin fourni.
public FileInfo Extract(string path, string password = null)
Paramètres
path
string
Le chemin vers le fichier de destination. Si le fichier existe déjà, il sera écrasé.
password
string
Mot de passe optionnel pour le déchiffrement.
Retourne
Les informations sur le fichier composé.
Exemples
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract("data.bin");
}
Exceptions
path
est nul.
L’appelant n’a pas la permission requise pour accéder.
Le path
est vide, contient uniquement des espaces 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 un deux-points (:) au milieu de la chaîne.
L’archive est corrompue.
Extract(Stream, string)
Extrait l’entrée vers le flux fourni.
public void Extract(Stream destination, string password = null)
Paramètres
destination
Stream
Flux de destination. Doit être écrivable.
password
string
Mot de passe optionnel pour le déchiffrement.
Exemples
Extrait une entrée d'archive zip avec mot de passe.
using (var archive = new SevenZipArchive("archive.7z"))
{
archive.Entries[0].Extract(httpResponseStream);
}
Exceptions
destination
ne prend pas en charge l’écriture.
L’archive n’est pas ouverte pour extraction. - ou - Cette entrée est un répertoire.
Données incorrectes dans l’entrée.
FinalizeCompressedData(Stream, byte[])
Écrit dans le flux de sortie tous les en-têtes qui suivent les données compressées.
protected abstract int FinalizeCompressedData(Stream outputStream, byte[] encoderProperties)
Paramètres
outputStream
Stream
Flux de sortie pour l’entrée.
encoderProperties
byte[]
Propriétés du compresseur.
Retourne
Nombre de “bytes techniques” qui ont été ajoutés après le bloc de données significatif de l’entrée.
GetDestinationStream(Stream)
Flux de destination pour l’entrée, peut être décoré.
protected abstract Stream GetDestinationStream(Stream outputStream)
Paramètres
outputStream
Stream
Flux de sortie pour l’entrée.
Retourne
Le flux de destination pour la compression de l’entrée.
Open(string)
Ouvre l’entrée pour extraction et fournit un flux avec le contenu de l’entrée.
public Stream Open(string password = null)
Paramètres
password
string
Mot de passe optionnel pour le déchiffrement.
Retourne
Le flux qui représente le contenu de l’entrée.
Exemples
Utilisation :
Stream decompressed = entry.Open();
.NET 4.0 et supérieur - utilisez la méthode Stream.CopyTo :
decompressed.CopyTo(httpResponse.OutputStream)
.NET 3.5 et antérieur - copiez les octets manuellement :
byte[] buffer = new byte[8192];
int bytesRead;
while (0 < (bytesRead = decompressed.Read(buffer, 0, buffer.Length)))
fileStream.Write(buffer, 0, bytesRead);
```</p>
#### Remarques
Lisez à partir du flux pour obtenir le contenu original du fichier. Voir la section des exemples.
#### Exceptions
[InvalidOperationException](https://learn.microsoft.com/dotnet/api/system.invalidoperationexception)
L'archive n'est pas ouverte pour extraction. - ou - Cette entrée est un répertoire.
[InvalidDataException](https://learn.microsoft.com/dotnet/api/system.io.invaliddataexception)
Données incorrectes dans l'entrée.
### <a id="Aspose_Zip_SevenZip_SevenZipArchiveEntry_CompressionProgressed"></a> CompressionProgressed
Se déclenche lorsqu'une portion du flux brut est compressée.
```csharp
public event EventHandler<progresseventargs> CompressionProgressed
Type d’événement
EventHandler<ProgressEventArgs>
Exemples
archive.Entries[0].CompressionProgressed += (s, e) => { int percent = (int)((100 * (long)e.ProceededBytes) / entrySourceStream.Length); };
Remarques
L'expéditeur de l'événement est une instance d'Aspose.Zip.SevenZip.SevenZipArchiveEntry.
Ne s'invoque pas en mode multi-thread pour les entrées LZMA2.