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


ZipArchive.CreateEntry Метод

Определение

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

Перегрузки

CreateEntry(String)

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

CreateEntry(String, CompressionLevel)

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

CreateEntry(String)

Исходный код:
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

Создает пустую запись, которая имеет указанные имя и уровень сжатия 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 только в том случае, если вы обеспокоены тем, что операция сжатия не завершится достаточно быстро для вашего сценария.

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