ZipArchiveEntry Třída

Definice

Představuje komprimovaný soubor v archivu zip.Represents a compressed file within a zip archive.

public ref class ZipArchiveEntry
public class ZipArchiveEntry
type ZipArchiveEntry = class
Public Class ZipArchiveEntry
Dědičnost
ZipArchiveEntry

Příklady

První příklad ukazuje, jak vytvořit novou položku v archivu zip a zapsat do ní.The first example shows how to create a new entry in a zip archive and write to it.

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

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            using (FileStream zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open))
            {
                using (ZipArchive archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update))
                {
                    ZipArchiveEntry readmeEntry = archive.CreateEntry("Readme.txt");
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Using zipToOpen As FileStream = New FileStream("c:\users\exampleuser\release.zip", FileMode.Open)
            Using archive As ZipArchive = New ZipArchive(zipToOpen, ZipArchiveMode.Update)
                Dim readmeEntry As ZipArchiveEntry = archive.CreateEntry("Readme.txt")
                Using writer As StreamWriter = New StreamWriter(readmeEntry.Open())
                    writer.WriteLine("Information about this package.")
                    writer.WriteLine("========================")
                End Using
            End Using
        End Using
    End Sub

End Module

Druhý příklad ukazuje, jak použít metodu rozšíření ExtractToFile(ZipArchiveEntry, String).The second example shows how to use the ExtractToFile(ZipArchiveEntry, String) extension method. Chcete-li spustit kód, musíte odkazovat na sestavení System.IO.Compression.FileSystem v projektu.You must reference the System.IO.Compression.FileSystem assembly in your project for the code to execute.

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

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

        Console.WriteLine("Provide path where to extract the zip file:");
        string extractPath = Console.ReadLine();

        // Normalizes the path.
        extractPath = Path.GetFullPath(extractPath);

        // Ensures that the last character on the extraction path
        // is the directory separator char. 
        // Without this, a malicious zip file could try to traverse outside of the expected
        // extraction path.
        if (!extractPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal))
            extractPath += Path.DirectorySeparatorChar;

        using (ZipArchive archive = ZipFile.OpenRead(zipPath))
        {
            foreach (ZipArchiveEntry entry in archive.Entries)
            {
                if (entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase))
                {
                    // Gets the full path to ensure that relative segments are removed.
                    string destinationPath = Path.GetFullPath(Path.Combine(extractPath, entry.FullName));

                    // Ordinal match is safest, case-sensitive volumes can be mounted within volumes that
                    // are case-insensitive.
                    if (destinationPath.StartsWith(extractPath, StringComparison.Ordinal))
                        entry.ExtractToFile(destinationPath);
                }
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

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

        Console.WriteLine("Provide path where to extract the zip file:")
        Dim extractPath As String = Console.ReadLine()

        ' Normalizes the path.
        extractPath = Path.GetFullPath(extractPath)

        ' Ensures that the last character on the extraction path
        ' is the directory separator char. 
        ' Without this, a malicious zip file could try to traverse outside of the expected
        ' extraction path.
        If Not extractPath.EndsWith(Path.DirectorySeparatorChar.ToString(), StringComparison.Ordinal) Then
            extractPath += Path.DirectorySeparatorChar
        End If

        Using archive As ZipArchive = ZipFile.OpenRead(zipPath)
            For Each entry As ZipArchiveEntry In archive.Entries
                If entry.FullName.EndsWith(".txt", StringComparison.OrdinalIgnoreCase) Then

                    ' Gets the full path to ensure that relative segments are removed.
                    Dim destinationPath As String = Path.GetFullPath(Path.Combine(extractPath, entry.FullName))
                    
                    ' Ordinal match is safest, case-sensitive volumes can be mounted within volumes that
                    ' are case-insensitive.
                    If destinationPath.StartsWith(extractPath, StringComparison.Ordinal) Then 
                        entry.ExtractToFile(destinationPath)
                    End If

                End If
            Next
        End Using
    End Sub

End Module

Poznámky

Archiv zip obsahuje záznam pro každý komprimovaný soubor.A zip archive contains an entry for each compressed file. Třída ZipArchiveEntry umožňuje kontrolovat vlastnosti položky a otevřít nebo odstranit položku.The ZipArchiveEntry class enables you to examine the properties of an entry, and open or delete the entry. Když otevřete položku, můžete komprimovaný soubor upravit zapsáním do datového proudu tohoto komprimovaného souboru.When you open an entry, you can modify the compressed file by writing to the stream for that compressed file.

Metody pro manipulaci s archivy zip a jejich položky jsou rozdělené mezi tři třídy: ZipFile, ZipArchive a ZipArchiveEntry.The methods for manipulating zip archives and their file entries are spread across three classes: ZipFile, ZipArchive and ZipArchiveEntry.

Do...To… Použít...Use…
Vytvoření archivu zip z adresářeCreate a zip archive from a directory ZipFile.CreateFromDirectory
Extrakce obsahu archivu zip do adresářeExtract the contents of a zip archive to a directory ZipFile.ExtractToDirectory
Přidat nové soubory do existujícího archivu zipAdd new files to an existing zip archive ZipArchive.CreateEntry
Načtení souboru v archivu zipRetrieve an file in a zip archive ZipArchive.GetEntry
Načíst všechny soubory v archivu zipRetrieve all of the files in a zip archive ZipArchive.Entries
Otevření datového proudu pro jednotlivé soubory obsažené v archivu zipTo open a stream to an individual file contained in a zip archive ZipArchiveEntry.Open
Odstranění souboru z archivu zipDelete a file from a zip archive ZipArchiveEntry.Delete

Pokud odkazujete na System.IO.Compression.FileSystem sestavení v projektu, můžete získat přístup ke dvěma rozšiřujícím metodám pro třídu ZipArchiveEntry.If you reference the System.IO.Compression.FileSystem assembly in your project, you can access two extension methods for the ZipArchiveEntry class. Tyto metody jsou ExtractToFile(ZipArchiveEntry, String) a ExtractToFile(ZipArchiveEntry, String, Boolean)a umožňují dekomprimaci obsahu položky do souboru.Those methods are ExtractToFile(ZipArchiveEntry, String) and ExtractToFile(ZipArchiveEntry, String, Boolean), and they enable you to decompress the contents of the entry to a file. System.IO.Compression.FileSystem sestavení není v Windows 8Windows 8k dispozici.The System.IO.Compression.FileSystem assembly is not available in Windows 8Windows 8. V Windows 8.x StoreWindows 8.x Store aplikace můžete dekomprimovat obsah archivu pomocí DeflateStream nebo GZipStream, nebo můžete prostředí Windows RuntimeWindows Runtime použít kompresní a dekomprimační Nástroj pro komprimaci a dekomprimaci souborů.In Windows 8.x StoreWindows 8.x Store apps, you can decompress the contents of an archive by using DeflateStream or GZipStream, or you can use the prostředí Windows RuntimeWindows Runtime types Compressor and Decompressor to compress and decompress files.

Vlastnosti

Archive

Získá archiv zip, do kterého položka patří.Gets the zip archive that the entry belongs to.

CompressedLength

Získá komprimovanou velikost položky v archivu zip.Gets the compressed size of the entry in the zip archive.

Crc32

32-bitová cyklická redundantní kontrolu.The 32-bit Cyclic Redundant Check.

ExternalAttributes

Atributy souboru specifické pro operační systém a aplikace.OS and application specific file attributes.

FullName

Načte relativní cestu položky v archivu zip.Gets the relative path of the entry in the zip archive.

LastWriteTime

Získá nebo nastaví čas poslední změny položky v archivu zip.Gets or sets the last time the entry in the zip archive was changed.

Length

Získá nekomprimovanou velikost položky v archivu zip.Gets the uncompressed size of the entry in the zip archive.

Name

Získá název souboru položky v archivu zip.Gets the file name of the entry in the zip archive.

Metody

Delete()

Odstraní položku z archivu zip.Deletes the entry from the zip archive.

Equals(Object)

Určuje, zda se zadaný objekt rovná aktuálnímu objektu.Determines whether the specified object is equal to the current object.

(Zděděno od Object)
GetHashCode()

Slouží jako výchozí funkce hash.Serves as the default hash function.

(Zděděno od Object)
GetType()

Získá Type aktuální instance.Gets the Type of the current instance.

(Zděděno od Object)
MemberwiseClone()

Vytvoří kopii aktuálního Objectbez podstruktury.Creates a shallow copy of the current Object.

(Zděděno od Object)
Open()

Otevře položku z archivu zip.Opens the entry from the zip archive.

ToString()

Načte relativní cestu položky v archivu zip.Retrieves the relative path of the entry in the zip archive.

Metody rozšíření

ExtractToFile(ZipArchiveEntry, String)

Extrahuje záznam v archivu zip do souboru.Extracts an entry in the zip archive to a file.

ExtractToFile(ZipArchiveEntry, String, Boolean)

Extrahuje záznam v archivu zip do souboru a volitelně přepíše existující soubor, který má stejný název.Extracts an entry in the zip archive to a file, and optionally overwrites an existing file that has the same name.

Platí pro