C#壓縮單個zip格式文件

Blake36Q 8年前發布 | 976 次閱讀 C# c# 壓縮

需要引用如下命名空間:

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

實現如下:

string sourceFile=@"C:\1.txt";
string destinationFile=@"D:\2.zip";
private const long BUFFER_SIZE = 20480;

if ( File.Exists ( sourceFile ))
{
    FileStream sourceStream = null;
    FileStream destinationStream = null;
    GZipStream compressedStream = null;
    try
    {
        // Read the bytes from the source file into a byte array
        sourceStream = new FileStream ( sourceFile, FileMode.Open, FileAccess.Read, FileShare.Read );

        // Open the FileStream to write to
        destinationStream = new FileStream ( destinationFile, FileMode.OpenOrCreate, FileAccess.Write );

        // Create a compression stream pointing to the destiantion stream
        compressedStream = new DeflateStream ( destinationStream, CompressionMode.Compress, true );
    long bufferSize = sourceStream.Length < BUFFER_SIZE ? sourceStream.Length : BUFFER_SIZE;   
    byte[] buffer = new byte[bufferSize];   
    int bytesRead = 0;   
    long bytesWritten = 0;   
    while ((bytesRead = sourceStream.Read(buffer, 0, buffer.Length)) != 0)   
    {   
        compressedStream.Write(buffer, 0, bytesRead);   
        bytesWritten += bufferSize;   
    }   

    }
    catch ( ApplicationException ex )
    {
        Console.WriteLine(ex.Message);
    }
    finally
    {
        // Make sure we allways close all streams
        if ( sourceStream != null )
            sourceStream.Close ( );

        if ( compressedStream != null )
            compressedStream.Close ( );

        if ( destinationStream != null )
            destinationStream.Close ( );
    }
}
 本文由用戶 Blake36Q 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!