แก้ไข

แชร์ผ่าน


ZipArchiveEntry.CompressedLength Property

Definition

Gets the compressed size, expressed in bytes, of the entry in the zip archive.

public:
 property long CompressedLength { long get(); };
public long CompressedLength { get; }
member this.CompressedLength : int64
Public ReadOnly Property CompressedLength As Long

Property Value

The compressed size of the entry in the zip archive.

Exceptions

The value of the property is not available because the entry has been modified.

Examples

The following example shows how to retrieve entries in a zip archive, and evaluate the properties of the entries. It uses the Name property to display the name of the entry, and the Length and CompressedLength properties to calculate how much the file was compressed.

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

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\example\result.zip";

            using (ZipArchive archive = ZipFile.OpenRead(zipPath))
            {
                foreach (ZipArchiveEntry entry in archive.Entries)
                {
                    float compressedRatio = (float)entry.CompressedLength / entry.Length;
                    float reductionPercentage = 100 - (compressedRatio * 100);

                    Console.WriteLine (string.Format("File: {0}, Compressed {1:F2}%", entry.Name, reductionPercentage));
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\example\result.zip"

        Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
            For Each entry As ZipArchiveEntry In archive.Entries
                Dim compressedRatio As Single = entry.CompressedLength / entry.Length
                Dim reductionPercentage As Single = 100 - (compressedRatio * 100)

                Console.WriteLine(String.Format("File: {0}, Compressed {1:F2}%", entry.Name, reductionPercentage))
            Next
        End Using
    End Sub

End Module

Remarks

This property cannot be retrieved when the mode is set to Create, or the mode is set to Update and the entry has been opened.

Applies to