Cet article a fait l'objet d'une traduction manuelle. Déplacez votre pointeur sur les phrases de l'article pour voir la version originale de ce texte. |
Traduction
Source
|
DeflateStream, classe
Fournit des méthodes et des propriétés pour compresser et décompresser des flux à l'aide de l'algorithme Deflate.
Assembly : System (dans System.dll)
Le type DeflateStream expose les membres suivants.
| Nom | Description | |
|---|---|---|
|
DeflateStream(Stream, CompressionMode) | Initialise une nouvelle instance de la classe DeflateStream avec le flux et la valeur CompressionMode spécifiés. |
|
DeflateStream(Stream, CompressionMode, Boolean) | Initialise une nouvelle instance de la classe DeflateStream à l'aide du flux spécifié et de la valeur CompressionMode, et d'une valeur qui spécifie s'il faut laisser le flux ouvert. |
| Nom | Description | |
|---|---|---|
|
BaseStream | Obtient une référence au flux sous-jacent. |
|
CanRead | Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. (Substitue Stream.CanRead.) |
|
CanSeek | Obtient une valeur indiquant si le flux prend en charge la recherche. (Substitue Stream.CanSeek.) |
|
CanTimeout | Obtient une valeur qui détermine si le flux actuel peut expirer. (Hérité de Stream.) |
|
CanWrite | Obtient une valeur indiquant si le flux prend en charge l'écriture. (Substitue Stream.CanWrite.) |
|
Length | Cette propriété n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.Length.) |
|
Position | Cette propriété n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.Position.) |
|
ReadTimeout | Obtient ou définit une valeur exprimée en millisecondes qui définit la durée pendant laquelle le flux tentera d'effectuer la lecture avant d'arriver à expiration. (Hérité de Stream.) |
|
WriteTimeout | Obtient ou définit une valeur exprimée en millisecondes qui définit la durée pendant laquelle le flux tentera d'inscrire des données avant d'arriver à expiration. (Hérité de Stream.) |
| Nom | Description | |
|---|---|---|
|
BeginRead | Débute une opération de lecture asynchrone. (Substitue Stream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).) |
|
BeginWrite | Débute une opération d'écriture asynchrone. (Substitue Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object).) |
|
Close | Ferme le flux actuel et libère les ressources (telles que les sockets et les handles de fichiers) associées à celui-ci. (Hérité de Stream.) |
|
CopyTo(Stream) | Lit les octets à partir du flux actuel et les écrit dans le flux de destination. (Hérité de Stream.) |
|
CopyTo(Stream, Int32) | Lit tous les octets du flux actuel et les écrit dans un flux de destination, à l'aide d'une taille de mémoire tampon spécifiée. (Hérité de Stream.) |
|
CreateObjRef | Crée un objet contenant toutes les informations appropriées requises pour générer un proxy permettant de communiquer avec un objet distant. (Hérité de MarshalByRefObject.) |
|
CreateWaitHandle | Obsolète. Alloue un objet WaitHandle. (Hérité de Stream.) |
|
Dispose() | Libère toutes les ressources utilisées par Stream. (Hérité de Stream.) |
|
Dispose(Boolean) | Libère les ressources non managées utilisées par DeflateStream et libère éventuellement les ressources managées. (Substitue Stream.Dispose(Boolean).) |
|
EndRead | Attend que la requête asynchrone en attente se termine. (Substitue Stream.EndRead(IAsyncResult).) |
|
EndWrite | Termine une opération d'écriture asynchrone. (Substitue Stream.EndWrite(IAsyncResult).) |
|
Equals(Object) | Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.) |
|
Finalize | Autorise un objet à tenter de libérer des ressources et d'exécuter d'autres opérations de netto***ge avant qu'il ne soit récupéré par l'opération garbage collection. (Hérité de Object.) |
|
Flush | Vide le contenu de la mémoire tampon interne de l'objet de flux en cours dans le flux sous-jacent. (Substitue Stream.Flush().) |
|
GetHashCode | Sert de fonction de hachage pour un type particulier. (Hérité de Object.) |
|
GetLifetimeService | Récupère l'objet de service de durée de vie en cours qui contrôle la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.) |
|
GetType | Obtient le Type de l'instance actuelle. (Hérité de Object.) |
|
InitializeLifetimeService | Obtient un objet de service de durée de vie pour contrôler la stratégie de durée de vie de cette instance. (Hérité de MarshalByRefObject.) |
|
MemberwiseClone() | Crée une copie superficielle de l'objet Object actif. (Hérité de Object.) |
|
MemberwiseClone(Boolean) | Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.) |
|
ObjectInvariant | Infrastructure. Prend en charge un Contract. (Hérité de Stream.) |
|
Read | Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. (Substitue Stream.Read(Byte[], Int32, Int32).) |
|
ReadByte | Lit un octet à partir du flux et avance d'un octet la position au sein du flux, ou retourne -1 s'il se situe à la fin du flux. (Hérité de Stream.) |
|
Seek | Cette opération n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.Seek(Int64, SeekOrigin).) |
|
SetLength | Cette opération n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.SetLength(Int64).) |
|
ToString | Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.) |
|
Write | Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. (Substitue Stream.Write(Byte[], Int32, Int32).) |
|
WriteByte | Écrit un octet à la position actuelle dans le flux actuel et avance d'un octet la position dans flux. (Hérité de Stream.) |
Cette classe représente l'algorithme Deflate, un algorithme standard utilisé pour la compression et la décompression de fichiers sans perte. Il combine l'algorithme LZ77 et le codage Huffman. Même pour un flux de données d'entrée arbitrairement long et présenté séquentiellement, les données peuvent être produites ou consommées uniquement à l'aide d'une quantité précédemment liée de stockage intermédiaire. Le format peut être aisément implémenté de telle sorte qu'il ne soit couvert par aucun brevet. Pour plus d'informations, consultez RFC 1951. DEFLATE Compressed Data Format Specification version 1.3."
Cette classe ne fournit pas de manière inhérente des fonctionnalités permettant l'ajout de fichiers dans des fichiers d'archives .zip ou l'extraction de fichiers depuis des fichiers d'archives .zip.
La classe GZipStream utilise le format de données gzip qui inclut une valeur de contrôle de redondance cyclique pour détecter un endommagement des données. Le format de données gzip utilise le même algorithme de compression que la classe DeflateStream.
Les fonctionnalités de compression dans DeflateStream et GZipStream sont exposées sous la forme d'un flux. Les données étant lues octet par octet, il n'est pas possible d'exécuter plusieurs passages afin de déterminer la meilleure méthode pour compresser des fichiers entiers ou de grands blocs de données. Les classes DeflateStream et GZipStream conviennent mieux aux sources de données non compressées. Si les données sources sont déjà compressées, l'utilisation de ces classes peut en fait augmenter la taille du flux.
L'exemple suivant indique comment utiliser la classe DeflateStream pour compresser et décompresser un répertoire de fichiers.
using System; using System.IO; using System.IO.Compression; public class Program { public static void Main() { // Path to directory of files to compress and decompress. string dirpath = @"c:\users\public\reports"; DirectoryInfo di = new DirectoryInfo(dirpath); // Compress the directory's files. foreach (FileInfo fi in di.GetFiles()) { Compress(fi); } // Decompress all *.cmp files in the directory. foreach (FileInfo fi in di.GetFiles("*.cmp")) { Decompress(fi); } } public static void Compress(FileInfo fi) { // Get the stream of the source file. using (FileStream inFile = fi.OpenRead()) { // Prevent compressing hidden and already compressed files. if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fi.Extension != ".cmp") { // Create the compressed file. using (FileStream outFile = File.Create(fi.FullName + ".cmp")) { using (DeflateStream Compress = new DeflateStream(outFile, CompressionMode.Compress)) { // Copy the source file into // the compression stream. inFile.CopyTo(Compress); Console.WriteLine("Compressed {0} from {1} to {2} bytes.", fi.Name, fi.Length.ToString(), outFile.Length.ToString()); } } } } } public static void Decompress(FileInfo fi) { // Get the stream of the source file. using (FileStream inFile = fi.OpenRead()) { // Get original file extension, // for example "doc" from report.doc.cmp. string curFile = fi.FullName; string origName = curFile.Remove(curFile.Length - fi.Extension.Length); //Create the decompressed file. using (FileStream outFile = File.Create(origName)) { using (DeflateStream Decompress = new DeflateStream(inFile, CompressionMode.Decompress)) { // Copy the decompression stream // into the output file. Decompress.CopyTo(outFile); Console.WriteLine("Decompressed: {0}", fi.Name); } } } } }
Windows 7, Windows Vista SP1 ou ultérieur, Windows XP SP3, Windows XP SP2 Édition x64, Windows Server 2008 (installation minimale non prise en charge), Windows Server 2008 R2 (installation minimale prise en charge avec SP1 ou version ultérieure), Windows Server 2003 SP2
Le .NET Framework ne prend pas en charge toutes les versions de chaque plateforme. Pour obtenir la liste des versions prises en charge, consultez Configuration requise du .NET Framework.