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