GZipStream Classe
Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale

Classe GZipStream

 

Fornisce i metodi e le proprietà usate per comprimere e decomprimere i flussi.

Spazio dei nomi:   System.IO.Compression
Assembly:  System (in System.dll)


public class GZipStream : Stream

NomeDescrizione
System_CAPS_pubmethodGZipStream(Stream, CompressionLevel)

Inizializza una nuova istanza della classe GZipStream usando il livello di compressione del flusso specificato.

System_CAPS_pubmethodGZipStream(Stream, CompressionLevel, Boolean)

Inizializza una nuova istanza della classe GZipStream usando il livello di compressione del flusso specificato. Facoltativamente mantiene aperto il flusso.

System_CAPS_pubmethodGZipStream(Stream, CompressionMode)

Inizializza una nuova istanza della classe GZipStream usando la modalità di compressione del flusso specificata.

System_CAPS_pubmethodGZipStream(Stream, CompressionMode, Boolean)

Inizializza una nuova istanza della classe GZipStream usando la modalità di compressione del flusso specificata. Facoltativamente mantiene aperto il flusso.

NomeDescrizione
System_CAPS_pubpropertyBaseStream

Ottiene un riferimento al flusso sottostante.

System_CAPS_pubpropertyCanRead

Ottiene un valore che indica se il flusso supporta la lettura durante la decompressione di un file.(Esegue l’override di Stream.CanRead).

System_CAPS_pubpropertyCanSeek

Ottiene un valore che indica se il flusso supporta la ricerca.(Esegue l’override di Stream.CanSeek).

System_CAPS_pubpropertyCanTimeout

Ottiene un valore che determina se il flusso corrente prevede il timeout.(Ereditato da Stream.)

System_CAPS_pubpropertyCanWrite

Ottiene un valore che indica se il flusso supporta la scrittura.(Esegue l’override di Stream.CanWrite).

System_CAPS_pubpropertyLength

Questa proprietà non è supportata e genera sempre un'eccezione NotSupportedException.(Esegue l’override di Stream.Length).

System_CAPS_pubpropertyPosition

Questa proprietà non è supportata e genera sempre un'eccezione NotSupportedException.(Esegue l’override di Stream.Position).

System_CAPS_pubpropertyReadTimeout

Ottiene o imposta un valore, in millisecondi, che determina per quanto tempo il flusso tenterà la lettura prima del timeout. (Ereditato da Stream.)

System_CAPS_pubpropertyWriteTimeout

Ottiene o imposta un valore, in millisecondi, che determina per quanto tempo il flusso tenterà la scrittura prima del timeout. (Ereditato da Stream.)

NomeDescrizione
System_CAPS_pubmethodBeginRead(Byte[], Int32, Int32, AsyncCallback, Object)

Inizia un'operazione di lettura asincrona.Provare a usare il metodo Stream.ReadAsync; vedere la sezione Osservazioni.(Esegue l’override di Stream.BeginRead(Byte[], Int32, Int32, AsyncCallback, Object)).

System_CAPS_pubmethodBeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)

Inizia un'operazione di scrittura asincrona.Provare a usare il metodo Stream.WriteAsync; vedere la sezione Osservazioni.(Esegue l’override di Stream.BeginWrite(Byte[], Int32, Int32, AsyncCallback, Object)).

System_CAPS_pubmethodClose()

Chiude il flusso corrente e libera le risorse, come socket e handle di file, ad esso associate.Anziché chiamare questo metodo, assicurarsi che il flusso sia eliminato correttamente.(Ereditato da Stream.)

System_CAPS_pubmethodCopyTo(Stream)

Legge i byte dal flusso corrente e li scrive in un altro flusso.(Ereditato da Stream.)

System_CAPS_pubmethodCopyTo(Stream, Int32)

Legge tutti i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata.(Ereditato da Stream.)

System_CAPS_pubmethodCopyToAsync(Stream)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso.(Ereditato da Stream.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32)

Legge in modo asincrono tutti i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata.(Ereditato da Stream.)

System_CAPS_pubmethodCopyToAsync(Stream, Int32, CancellationToken)

Legge in modo asincrono i byte dal flusso corrente e li scrive in un altro flusso, usando una dimensione di buffer specificata e un token di annullamento.(Ereditato da Stream.)

System_CAPS_pubmethodCreateObjRef(Type)

Consente di creare un oggetto che contiene tutte le informazioni rilevanti necessarie per la generazione del proxy utilizzato per effettuare la comunicazione con un oggetto remoto.(Ereditato da MarshalByRefObject.)

System_CAPS_protmethodCreateWaitHandle()

Obsoleto.Alloca un oggetto WaitHandle.(Ereditato da Stream.)

System_CAPS_pubmethodDispose()

Rilascia tutte le risorse usate dall'oggetto Stream.(Ereditato da Stream.)

System_CAPS_protmethodDispose(Boolean)

Rilascia le risorse non gestite usate da GZipStream e, facoltativamente, le risorse gestite.(Esegue l’override di Stream.Dispose(Boolean)).

System_CAPS_pubmethodEndRead(IAsyncResult)

Attende il completamento della lettura asincrona in sospeso.Provare a usare il metodo Stream.ReadAsync; vedere la sezione Osservazioni.(Esegue l’override di Stream.EndRead(IAsyncResult)).

System_CAPS_pubmethodEndWrite(IAsyncResult)

Gestisce la fine di un'operazione di scrittura asincrona.Provare a usare il metodo Stream.WriteAsync; vedere la sezione Osservazioni.(Esegue l’override di Stream.EndWrite(IAsyncResult)).

System_CAPS_pubmethodEquals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object.)

System_CAPS_protmethodFinalize()

Consente a un oggetto di provare a liberare risorse ed eseguire altre operazioni di pulizia prima che l'oggetto stesso venga reclamato dalla procedura di Garbage Collection. (Ereditato da Object.)

System_CAPS_pubmethodFlush()

L'implementazione corrente di questo metodo non presenta alcuna funzionalità.(Esegue l’override di Stream.Flush()).

System_CAPS_pubmethodFlushAsync()

Cancella in modo asincrono i dati di tutti i buffer del flusso e determina la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante.(Ereditato da Stream.)

System_CAPS_pubmethodFlushAsync(CancellationToken)

Cancella in modo asincrono i dati di tutti i buffer del flusso, determina la scrittura dei dati memorizzati nel buffer nel dispositivo sottostante e monitora le richieste di annullamento.(Ereditato da Stream.)

System_CAPS_pubmethodGetHashCode()

Funge da funzione hash per un particolare tipo. (Ereditato da Object.)

System_CAPS_pubmethodGetLifetimeService()

Consente di recuperare l'oggetto servizio di durata corrente per controllare i criteri di durata per l'istanza.(Ereditato da MarshalByRefObject.)

System_CAPS_pubmethodGetType()

Ottiene il Type dell'istanza corrente. (Ereditato da Object.)

System_CAPS_pubmethodInitializeLifetimeService()

Consente di ottenere un oggetto servizio di durata per il controllo dei criteri di durata per l'istanza.(Ereditato da MarshalByRefObject.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia dei riferimenti dell'oggetto Object corrente. (Ereditato da Object.)

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia dei riferimenti dell'oggetto MarshalByRefObject corrente.(Ereditato da MarshalByRefObject.)

System_CAPS_protmethodObjectInvariant()

Obsoleto. Questa API supporta l'infrastruttura di prodotto e non deve essere usata direttamente dal codice. Fornisce supporto per un oggetto Contract.(Ereditato da Stream.)

System_CAPS_pubmethodRead(Byte[], Int32, Int32)

Legge un numero di byte decompressi nella matrice di byte specificata.(Esegue l’override di Stream.Read(Byte[], Int32, Int32)).

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32)

Legge in modo asincrono una sequenza di byte dal flusso corrente e passa alla posizione successiva nel flusso in base al numero di byte letti.(Ereditato da Stream.)

System_CAPS_pubmethodReadAsync(Byte[], Int32, Int32, CancellationToken)

Legge in modo asincrono una sequenza di byte dal flusso corrente e passa alla posizione successiva all'interno del flusso corrente in base al numero di byte letti e monitora le richieste di annullamento.(Ereditato da Stream.)

System_CAPS_pubmethodReadByte()

Legge un byte dal flusso e sposta in avanti la posizione corrente all'interno del flusso di un byte o restituisce -1 se si trova alla fine del flusso.(Ereditato da Stream.)

System_CAPS_pubmethodSeek(Int64, SeekOrigin)

Questa proprietà non è supportata e genera sempre un'eccezione NotSupportedException.(Esegue l’override di Stream.Seek(Int64, SeekOrigin)).

System_CAPS_pubmethodSetLength(Int64)

Questa proprietà non è supportata e genera sempre un'eccezione NotSupportedException.(Esegue l’override di Stream.SetLength(Int64)).

System_CAPS_pubmethodToString()

Restituisce una stringa che rappresenta l'oggetto corrente. (Ereditato da Object.)

System_CAPS_pubmethodWrite(Byte[], Int32, Int32)

Scrive i byte compressi nel flusso sottostante dalla matrice di byte specificata.(Esegue l’override di Stream.Write(Byte[], Int32, Int32)).

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32)

Scrive in modo asincrono una sequenza di byte nel flusso corrente e passa alla posizione successiva nel flusso in base al numero di byte scritti.(Ereditato da Stream.)

System_CAPS_pubmethodWriteAsync(Byte[], Int32, Int32, CancellationToken)

Scrive in modo asincrono una sequenza di byte nel flusso corrente e passa alla posizione successiva all'interno del flusso corrente in base al numero di byte scritti e monitora le richieste di annullamento.(Ereditato da Stream.)

System_CAPS_pubmethodWriteByte(Byte)

Scrive un byte nella posizione corrente del flusso e sposta in avanti di un byte la posizione del flusso.(Ereditato da Stream.)

Questa classe rappresenta il formato dati gzip, che utilizza un algoritmo standard del settore per la decompressione e la compressione dei file senza perdita di dati.Il formato include un valore di controllo di ridondanza ciclico per rilevare il danneggiamento dei dati.Il formato dati gzip utilizza lo stesso algoritmo come la DeflateStream classe, ma può essere estesa per l'utilizzo di altri formati di compressione.Il formato può essere facilmente implementato in modo non previsto dal titolare di brevetti.

Inizia con la .NET Framework 4.5, la DeflateStream classe utilizza la libreria zlib per la compressione.Di conseguenza, fornisce un algoritmo di compressione migliore e, nella maggior parte dei casi, un file compresso più piccoli rispetto al tempo sono disponibili nelle versioni precedenti di .NET Framework.

Compresso GZipStream oggetti scritti in un file con estensione gz possono essere decompressi utilizzando numerosi strumenti di compressione comuni; tuttavia, questa classe non intrinsecamente fornisce funzionalità per l'aggiunta di file o l'estrazione dei file dagli archivi zip.

La funzionalità di compressione DeflateStream e GZipStream viene esposto come un flusso.I dati letti su base byte per byte, pertanto non è possibile eseguire più passaggi per determinare il metodo migliore per comprimere file interi o grandi blocchi di dati.Il DeflateStream e GZipStream classi sono ideali su origini non compresse dei dati.Se i dati di origine sono già compresso, utilizzo di queste classi potrebbe in realtà aumentare le dimensioni del flusso.

Note per gli eredi:

Quando si eredita da GZipStream, è necessario eseguire l'override dei seguenti membri: CanSeek, CanWrite, e CanRead.

Nell'esempio seguente viene illustrato come utilizzare la GZipStream classe per comprimere e decomprimere una directory di file.

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

namespace zip
{
    public class Program
    {
        private static string directoryPath = @"c:\temp";
        public static void Main()
        {
            DirectoryInfo directorySelected = new DirectoryInfo(directoryPath);
            Compress(directorySelected);

            foreach (FileInfo fileToDecompress in directorySelected.GetFiles("*.gz"))
            {
                Decompress(fileToDecompress);
            }
        }

        public static void Compress(DirectoryInfo directorySelected)
        {
            foreach (FileInfo fileToCompress in directorySelected.GetFiles())
            {
                using (FileStream originalFileStream = fileToCompress.OpenRead())
                {
                    if ((File.GetAttributes(fileToCompress.FullName) & 
                       FileAttributes.Hidden) != FileAttributes.Hidden & fileToCompress.Extension != ".gz")
                    {
                        using (FileStream compressedFileStream = File.Create(fileToCompress.FullName + ".gz"))
                        {
                            using (GZipStream compressionStream = new GZipStream(compressedFileStream, 
                               CompressionMode.Compress))
                            {
                                originalFileStream.CopyTo(compressionStream);

                            }
                        }
                        FileInfo info = new FileInfo(directoryPath + "\\" + fileToCompress.Name + ".gz");
                        Console.WriteLine("Compressed {0} from {1} to {2} bytes.",
                        fileToCompress.Name, fileToCompress.Length.ToString(), info.Length.ToString());
                    }

                }
            }
        }

        public static void Decompress(FileInfo fileToDecompress)
        {
            using (FileStream originalFileStream = fileToDecompress.OpenRead())
            {
                string currentFileName = fileToDecompress.FullName;
                string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);

                using (FileStream decompressedFileStream = File.Create(newFileName))
                {
                    using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
                    {
                        decompressionStream.CopyTo(decompressedFileStream);
                        Console.WriteLine("Decompressed: {0}", fileToDecompress.Name);
                    }
                }
            }
        }
    }
}

Universal Windows Platform
Disponibile da 4.5
.NET Framework
Disponibile da 2.0
Portable Class Library
Supportato in: portable .NET platforms
Windows Phone
Disponibile da 8.1

Eventuali membri pubblici statici (Shared in Visual Basic) di questo tipo sono thread-safe. I membri di istanza non sono garantiti come thread-safe.

Torna all'inizio
Mostra:
© 2016 Microsoft