ZipArchiveEntry.Length プロパティ


zip アーカイブ内のエントリの非圧縮サイズを取得します。Gets the uncompressed size of the entry in the zip archive.

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


zip アーカイブ内のエントリの非圧縮サイズ。The uncompressed size of the entry in the zip archive.


プロパティの値は、エントリが変更されたため、使用できません。The value of the property is not available because the entry has been modified.

次の例は、zip アーカイブからエントリを取得し、エントリのプロパティを評価する方法を示しています。The following example shows how to retrieve entries from a zip archive, and evaluate the properties of the entries. この例では、Name プロパティを使用してエントリの名前を表示し、Length プロパティと CompressedLength プロパティを使用してファイルの圧縮量を計算します。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\";

            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\"

        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))
        End Using
    End Sub

End Module


モードが Createに設定されている場合、またはモードが Update に設定されていて、エントリが開かれている場合は、このプロパティを取得できません。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.