Поделиться через


ZipArchive.CreateEntry Метод

Определение

Создает пустую запись в zip-архиве.

Перегрузки

Имя Описание
CreateEntry(String)

Создает пустую запись с указанным путем и именем записи в zip-архиве.

CreateEntry(String, CompressionLevel)

Создает пустую запись с указанным именем записи и уровнем сжатия в zip-архиве.

CreateEntry(String)

Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs

Создает пустую запись с указанным путем и именем записи в zip-архиве.

public:
 System::IO::Compression::ZipArchiveEntry ^ CreateEntry(System::String ^ entryName);
public System.IO.Compression.ZipArchiveEntry CreateEntry(string entryName);
member this.CreateEntry : string -> System.IO.Compression.ZipArchiveEntry
Public Function CreateEntry (entryName As String) As ZipArchiveEntry

Параметры

entryName
String

Путь относительно корневого каталога архива, указывающий имя создаваемой записи.

Возвращаемое значение

Пустая запись в zip-архиве.

Исключения

entryName равно Empty.

entryName равно null.

Zip-архив не поддерживает запись.

Zip-архив был удален.

Примеры

В следующем примере показано, как создать запись и записать в нее с помощью потока.

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("========================");
                    }
                }
            }
        }
    }
}
open System.IO
open System.IO.Compression

do
    use zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open)

    use archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update)

    let readmeEntry = archive.CreateEntry "Readme.txt"
    use 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

Комментарии

Строка entryName должна отражать относительный путь записи, которую вы хотите создать в zip-архиве. В предоставленной строке нет ограничений. Однако если он не отформатирован как относительный путь, создается запись, но при извлечении содержимого zip-архива может возникнуть исключение. Если запись с указанным путем и именем уже существует в архиве, вторая запись создается с тем же путем и именем.

Значение LastWriteTime свойства для новой записи имеет текущее время. Запись сжимается с помощью уровня сжатия по умолчанию базового алгоритма сжатия. Если вы хотите указать другой уровень сжатия, используйте CreateEntry этот метод.

Применяется к

CreateEntry(String, CompressionLevel)

Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs
Исходный код:
ZipArchive.cs

Создает пустую запись с указанным именем записи и уровнем сжатия в zip-архиве.

public:
 System::IO::Compression::ZipArchiveEntry ^ CreateEntry(System::String ^ entryName, System::IO::Compression::CompressionLevel compressionLevel);
public System.IO.Compression.ZipArchiveEntry CreateEntry(string entryName, System.IO.Compression.CompressionLevel compressionLevel);
member this.CreateEntry : string * System.IO.Compression.CompressionLevel -> System.IO.Compression.ZipArchiveEntry
Public Function CreateEntry (entryName As String, compressionLevel As CompressionLevel) As ZipArchiveEntry

Параметры

entryName
String

Путь относительно корневого каталога архива, указывающий имя создаваемой записи.

compressionLevel
CompressionLevel

Одно из значений перечисления, указывающее, следует ли подчеркивать эффективность скорости или сжатия при создании записи.

Возвращаемое значение

Пустая запись в zip-архиве.

Исключения

entryName равно Empty.

entryName равно null.

Zip-архив не поддерживает запись.

Zip-архив был удален.

Примеры

В следующем примере показано, как создать запись с оптимальным уровнем сжатия. Он также записывает в новую запись с помощью потока.

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", CompressionLevel.Optimal);
                    using (StreamWriter writer = new StreamWriter(readmeEntry.Open()))
                    {
                            writer.WriteLine("Information about this package.");
                            writer.WriteLine("========================");
                    }
                }
            }
        }
    }
}
open System.IO
open System.IO.Compression

do
    use zipToOpen = new FileStream(@"c:\users\exampleuser\release.zip", FileMode.Open)

    use archive = new ZipArchive(zipToOpen, ZipArchiveMode.Update)

    let readmeEntry = archive.CreateEntry("Readme.txt", CompressionLevel.Optimal)
    use 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", CompressionLevel.Optimal)
                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

Комментарии

Строка entryName должна отражать относительный путь записи, которую вы хотите создать в zip-архиве. В предоставленной строке нет ограничений. Однако если он не отформатирован как относительный путь, создается запись, но при извлечении содержимого zip-архива может возникнуть исключение. Если запись с указанным именем уже существует в архиве, вторая запись создается с тем же именем.

Значение LastWriteTime свойства для новой записи имеет текущее время. Задайте параметру compressionLevel , Optimal если нужно, чтобы файл был сжатым как можно больше. compressionLevel Задайте параметр только Fastest в том случае, если вы обеспокоены тем, что операция сжатия не завершится достаточно быстро для вашего сценария.

Применяется к