ZipArchive.GetEntry(String) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Извлекает Программу-оболочку для заданной записи в ZIP-архиве.
public:
System::IO::Compression::ZipArchiveEntry ^ GetEntry(System::String ^ entryName);
public System.IO.Compression.ZipArchiveEntry GetEntry (string entryName);
public System.IO.Compression.ZipArchiveEntry? GetEntry (string entryName);
member this.GetEntry : string -> System.IO.Compression.ZipArchiveEntry
Public Function GetEntry (entryName As String) As ZipArchiveEntry
Параметры
- entryName
- String
Путь относительно корня архива, который указывает запись для получения.
Возвращаемое значение
Программа-оболочка для определенной записи в архиве; null
если запись не существует в архиве.
Исключения
entryName
имеет значение Empty.
entryName
имеет значение null
.
ZIP-архив не поддерживает чтение.
ZIP-архив был удален.
ZIP-архив поврежден, и его записи не могут быть извлечены.
Примеры
В следующем примере показано, как использовать GetEntry метод для получения записи.
using System;
using System.IO;
using System.IO.Compression;
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
string zipPath = @"c:\example\result.zip";
using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
{
ZipArchiveEntry entry = archive.GetEntry("ExistingFile.txt");
using (StreamWriter writer = new StreamWriter(entry.Open()))
{
writer.BaseStream.Seek(0, SeekOrigin.End);
writer.WriteLine("append line to file");
}
entry.LastWriteTime = DateTimeOffset.UtcNow.LocalDateTime;
}
}
}
}
open System
open System.IO
open System.IO.Compression
[<EntryPoint>]
let main _ =
let zipPath = @"c:\example\result.zip"
use archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
let entry = archive.GetEntry "ExistingFile.txt"
use writer = new StreamWriter(entry.Open())
writer.BaseStream.Seek(0, SeekOrigin.End) |> ignore
writer.WriteLine "append line to file"
entry.LastWriteTime <- DateTimeOffset.UtcNow.LocalDateTime
0
Imports System.IO
Imports System.IO.Compression
Module Module1
Sub Main()
Dim zipPath As String = "c:\example\result.zip"
Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
Dim entry As ZipArchiveEntry = archive.GetEntry("ExistingFile.txt")
Using writer As StreamWriter = New StreamWriter(entry.Open())
writer.BaseStream.Seek(0, SeekOrigin.End)
writer.WriteLine("append line to file")
End Using
entry.LastWriteTime = DateTimeOffset.UtcNow.LocalDateTime
End Using
End Sub
End Module
Комментарии
Если в архиве существует несколько записей с указанным именем, возвращается первая. Имя записи сравнивается с entryName
использованием порядкового сравнения.