ZipArchiveEntry ZipArchiveEntry ZipArchiveEntry ZipArchiveEntry Class

Definition

Stellt eine komprimierte Datei in einem Zip-Archiv dar.Represents a compressed file within a zip archive.

public ref class ZipArchiveEntry
public class ZipArchiveEntry
type ZipArchiveEntry = class
Public Class ZipArchiveEntry
Vererbung
ZipArchiveEntryZipArchiveEntryZipArchiveEntryZipArchiveEntry

Beispiele

Das erste Beispiel zeigt, wie Sie einen neuen Eintrag im Zip-Archiv zu erstellen und in ihn schreiben.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

Das zweite Beispiel zeigt, wie Sie mit der ExtractToFile(ZipArchiveEntry, String) -Erweiterungsmethode.The second example shows how to use the ExtractToFile(ZipArchiveEntry, String) extension method. Sie müssen verweisen die System.IO.Compression.FileSystem Assembly in Ihrem Projekt für den Code ausgeführt.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

Hinweise

Ein Zip-Archiv enthält einen Eintrag für jede komprimierten Datei.A zip archive contains an entry for each compressed file. Die ZipArchiveEntry -Klasse ermöglicht Ihnen, überprüfen Sie die Eigenschaften eines Eintrags aus, und öffnen oder löschen Sie den Eintrag.The ZipArchiveEntry class enables you to examine the properties of an entry, and open or delete the entry. Beim Öffnen eines Eintrags können Sie die komprimierte Datei ändern, indem Sie in den Datenstrom für diese komprimierte Datei schreiben.When you open an entry, you can modify the compressed file by writing to the stream for that compressed file.

Die Methoden zum Bearbeiten von Zip-Archive und ihre Dateieinträge auf drei Klassen verteilt sind: ZipFile, ZipArchive und ZipArchiveEntry.The methods for manipulating zip archives and their file entries are spread across three classes: ZipFile, ZipArchive and ZipArchiveEntry.

An...To… Empfohlen...Use…
Erstellen Sie eine Zip-Archiv aus einem VerzeichnisCreate a zip archive from a directory ZipFile.CreateFromDirectory
Extrahieren Sie den Inhalt der Zip-Archiv in ein VerzeichnisExtract the contents of a zip archive to a directory ZipFile.ExtractToDirectory
Fügen Sie neue Dateien hinzu, um eine vorhandene Zip-ArchivAdd new files to an existing zip archive ZipArchive.CreateEntry
Rufen Sie eine Datei in eine Zip-ArchivRetrieve an file in a zip archive ZipArchive.GetEntry
Rufen Sie aller Dateien in einem Zip-Archiv abRetrieve all of the files in a zip archive ZipArchive.Entries
Zum Öffnen eines Datenstroms an eine einzelne Datei, die in einem Zip-Archiv enthalten sindTo open a stream to an individual file contained in a zip archive ZipArchiveEntry.Open
Löschen einer Datei aus einem Zip-ArchivDelete a file from a zip archive ZipArchiveEntry.Delete

Wenn Sie auf die System.IO.Compression.FileSystem Assembly in Ihrem Projekt, es stehen zwei Erweiterungsmethoden für die ZipArchiveEntry Klasse.If you reference the System.IO.Compression.FileSystem assembly in your project, you can access two extension methods for the ZipArchiveEntry class. Diese Methoden sind ExtractToFile(ZipArchiveEntry, String) und ExtractToFile(ZipArchiveEntry, String, Boolean), und sie ermöglichen Ihnen, den Inhalt des Eintrags, der eine Datei dekomprimiert werden.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. Die System.IO.Compression.FileSystem Assembly ist nicht verfügbar in Windows 8Windows 8.The System.IO.Compression.FileSystem assembly is not available in Windows 8Windows 8. In Windows 8.x StoreWindows 8.x Store -apps können Sie den Inhalt eines Archivs mit Dekomprimieren DeflateStream oder GZipStream, oder Sie können die Windows-RuntimeWindows Runtime Typen von komprimieren und Dekomprimierungsprogramm auf Komprimieren und Dekomprimieren von Dateien.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 Windows-RuntimeWindows Runtime types Compressor and Decompressor to compress and decompress files.

Eigenschaften

Archive Archive Archive Archive

Ruft das Zip-Archiv ab, zu dem der EIntrag gehört.Gets the zip archive that the entry belongs to.

CompressedLength CompressedLength CompressedLength CompressedLength

Ruft die komprimierte Größe des unkomprimierten Eintrags im ZIP-Archiv ab.Gets the compressed size of the entry in the zip archive.

Crc32 Crc32 Crc32 Crc32
ExternalAttributes ExternalAttributes ExternalAttributes ExternalAttributes

Betriebssystem- und anwendungsspezifische Dateiattribute.OS and application specific file attributes.

FullName FullName FullName FullName

Ruft den relativen Pfad des Eintrags im ZIP-Archiv ab.Gets the relative path of the entry in the zip archive.

LastWriteTime LastWriteTime LastWriteTime LastWriteTime

Ruft den letzten Zeitpunkt ab, zu dem der Eintrag im Zip-Archiv geändert wurde, oder legt diesen fest.Gets or sets the last time the entry in the zip archive was changed.

Length Length Length Length

Ruft die Größe des unkomprimierten Eintrags im ZIP-Archiv ab.Gets the uncompressed size of the entry in the zip archive.

Name Name Name Name

Ruft den Dateinamen des Eintrags im ZIP-Archiv ab.Gets the file name of the entry in the zip archive.

Methoden

Delete() Delete() Delete() Delete()

Löscht den Eintrag aus dem Zip-Archiv.Deletes the entry from the zip archive.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Fungiert als Standardhashfunktion.Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

(Inherited from Object)
MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

Erstellt eine flache Kopie des aktuellen Object.Creates a shallow copy of the current Object.

(Inherited from Object)
Open() Open() Open() Open()

Öffnet den Eintrag aus dem Zip-Archiv.Opens the entry from the zip archive.

ToString() ToString() ToString() ToString()

Ruft den relativen Pfad des Eintrags im Zip-Archiv ab.Retrieves the relative path of the entry in the zip archive.

Extension Methods

ExtractToFile(ZipArchiveEntry, String) ExtractToFile(ZipArchiveEntry, String) ExtractToFile(ZipArchiveEntry, String) ExtractToFile(ZipArchiveEntry, String)

Extrahiert einen Eintrag im Zip-Archiv in eine Datei an.Extracts an entry in the zip archive to a file.

ExtractToFile(ZipArchiveEntry, String, Boolean) ExtractToFile(ZipArchiveEntry, String, Boolean) ExtractToFile(ZipArchiveEntry, String, Boolean) ExtractToFile(ZipArchiveEntry, String, Boolean)

Extrahiert einen Eintrag im ZIP-Archiv in eine Datei und überschreibt optional eine vorhandene Datei gleichen Namens.Extracts an entry in the zip archive to a file, and optionally overwrites an existing file that has the same name.

Gilt für: