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
Ce sujet n'a pas encore été évalué - Évaluez ce sujet

GZipStream, classe

Fournit les méthodes et les propriétés utilisées pour compresser et décompresser des flux.

System.Object
  System.MarshalByRefObject
    System.IO.Stream
      System.IO.Compression.GZipStream

Espace de noms :  System.IO.Compression
Assembly :  System (dans System.dll)
public class GZipStream : Stream

Le type GZipStream expose les membres suivants.

  Nom Description
Méthode publique Pris en charge par XNA Framework GZipStream(Stream, CompressionMode) Initialise une nouvelle instance de la classe GZipStream avec le flux et la valeur CompressionMode spécifiés.
Méthode publique Pris en charge par XNA Framework GZipStream(Stream, CompressionMode, Boolean) Initialise une nouvelle instance de la classe GZipStream à 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.
Début
  Nom Description
Propriété publique Pris en charge par XNA Framework BaseStream Obtient une référence au flux sous-jacent.
Propriété publique Pris en charge par XNA Framework CanRead Obtient une valeur indiquant si le flux prend en charge la lecture pendant la décompression d'un fichier. (Substitue Stream.CanRead.)
Propriété publique Pris en charge par XNA Framework CanSeek Obtient une valeur indiquant si le flux prend en charge la recherche. (Substitue Stream.CanSeek.)
Propriété publique Pris en charge par XNA Framework CanTimeout Obtient une valeur qui détermine si le flux actuel peut expirer. (Hérité de Stream.)
Propriété publique Pris en charge par XNA Framework CanWrite Obtient une valeur indiquant si le flux prend en charge l'écriture. (Substitue Stream.CanWrite.)
Propriété publique Pris en charge par XNA Framework Length Cette propriété n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.Length.)
Propriété publique Pris en charge par XNA Framework Position Cette propriété n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.Position.)
Propriété publique Pris en charge par XNA Framework 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.)
Propriété publique Pris en charge par XNA Framework 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.)
Début
  Nom Description
Méthode publique Pris en charge par XNA Framework BeginRead Débute une opération de lecture asynchrone. (Substitue Stream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object).)
Méthode publique Pris en charge par XNA Framework BeginWrite Débute une opération d'écriture asynchrone. (Substitue Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object).)
Méthode publique Pris en charge par XNA Framework 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.)
Méthode publique CopyTo(Stream) Lit les octets à partir du flux actuel et les écrit dans le flux de destination. (Hérité de Stream.)
Méthode publique 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.)
Méthode publique 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.)
Méthode protégée Pris en charge par XNA Framework CreateWaitHandle Obsolète. Alloue un objet WaitHandle. (Hérité de Stream.)
Méthode publique Pris en charge par XNA Framework Dispose() Libère toutes les ressources utilisées par Stream. (Hérité de Stream.)
Méthode protégée Pris en charge par XNA Framework Dispose(Boolean) Libère les ressources non managées utilisées par GZipStream et libère éventuellement les ressources managées. (Substitue Stream.Dispose(Boolean).)
Méthode publique Pris en charge par XNA Framework EndRead Attend que la requête asynchrone en attente se termine. (Substitue Stream.EndRead(IAsyncResult).)
Méthode publique Pris en charge par XNA Framework EndWrite Gère la fin d'une opération d'écriture asynchrone. (Substitue Stream.EndWrite(IAsyncResult).)
Méthode publique Pris en charge par XNA Framework Equals(Object) Détermine si l'Object spécifié est égal à l'Object en cours. (Hérité de Object.)
Méthode protégée Pris en charge par XNA Framework 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.)
Méthode publique Pris en charge par XNA Framework Flush Vide le contenu de la mémoire tampon interne de l'objet GZipStream en cours dans le flux sous-jacent. (Substitue Stream.Flush().)
Méthode publique Pris en charge par XNA Framework GetHashCode Sert de fonction de hachage pour un type particulier. (Hérité de Object.)
Méthode publique 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.)
Méthode publique Pris en charge par XNA Framework GetType Obtient le Type de l'instance actuelle. (Hérité de Object.)
Méthode publique 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.)
Méthode protégée Pris en charge par XNA Framework MemberwiseClone() Crée une copie superficielle de l'objet Object actif. (Hérité de Object.)
Méthode protégée MemberwiseClone(Boolean) Crée une copie superficielle de l'objet MarshalByRefObject actuel. (Hérité de MarshalByRefObject.)
Méthode protégée ObjectInvariant Infrastructure. Prend en charge un Contract. (Hérité de Stream.)
Méthode publique Pris en charge par XNA Framework Read Lit un certain nombre d'octets décompressés dans le tableau d'octets spécifié. (Substitue Stream.Read(Byte[], Int32, Int32).)
Méthode publique Pris en charge par XNA Framework 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.)
Méthode publique Pris en charge par XNA Framework Seek Cette propriété n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.Seek(Int64, SeekOrigin).)
Méthode publique Pris en charge par XNA Framework SetLength Cette propriété n'est pas prise en charge et lève toujours NotSupportedException. (Substitue Stream.SetLength(Int64).)
Méthode publique Pris en charge par XNA Framework ToString Retourne une chaîne qui représente l'objet actuel. (Hérité de Object.)
Méthode publique Pris en charge par XNA Framework Write Écrit les octets compressés dans le flux sous-jacent à partir du tableau d'octets spécifié. (Substitue Stream.Write(Byte[], Int32, Int32).)
Méthode publique Pris en charge par XNA Framework WriteByte Écrit un octet à la position actuelle dans le flux actuel et avance d'un octet la position dans flux. (Hérité de Stream.)
Début

Cette classe représente le format de données gzip, qui utilise un algorithme standard pour la compression et la décompression de fichiers sans perte. Le format inclut une valeur de contrôle de redondance cyclique pour détecter les données endommagées. Le format de données gzip utilise le même algorithme que la classe DeflateStream, mais peut être étendu pour utiliser d'autres formats de compression. Le format peut être aisément implémenté de telle sorte qu'il ne soit couvert par aucun brevet.

Les objets GZipStream compressés écrits dans un fichier portant l'extension .gz peuvent être décompressés à l'aide de nombreux outils de compression courants ; toutefois, 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.

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.

Remarques à l'attention des héritiers

Lorsque vous héritez de GZipStream, vous devez substituer les membres suivants : CanSeek, CanWrite et CanRead.

L'exemple suivant indique comment utiliser la classe GZipStream pour compresser et décompresser un répertoire de fichiers.


using System;
using System.IO;
using System.IO.Compression;

namespace zip
{

    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 *.gz files in the directory.
            foreach (FileInfo fi in di.GetFiles("*.gz"))
            {
                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 != ".gz")
                {
                    // Create the compressed file.
                    using (FileStream outFile = 
                    			File.Create(fi.FullName + ".gz"))
                    {
                        using (GZipStream Compress = 
                        	new GZipStream(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.gz.
                string curFile = fi.FullName;
                string origName = curFile.Remove(curFile.Length - 
                		fi.Extension.Length);

                //Create the decompressed file.
                using (FileStream outFile = File.Create(origName))
                {
                    using (GZipStream Decompress = new GZipStream(inFile,
                            CompressionMode.Decompress))
                    {
                        // Copy the decompression stream 
                        // into the output file.
            		    Decompress.CopyTo(outFile);
            		    
                        Console.WriteLine("Decompressed: {0}", fi.Name);

                    }
                }
            }
        }

    }
}


.NET Framework

Pris en charge dans : 4, 3.5, 3.0, 2.0

.NET Framework Client Profile

Pris en charge dans : 4, 3.5 SP1

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.
Tous les membres static (Shared en Visual Basic) publics de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.
Cela vous a-t-il été utile ?
(1500 caractères restants)
Contenu de la communauté Ajouter
Annotations FAQ