ZipArchive.CreateEntry 方法

定义

在 zip 存档中创建空项。

重载

CreateEntry(String)

创建在 zip 存档中有指定路径和项名的空项。

CreateEntry(String, CompressionLevel)

创建在 zip 存档中有指定项名和压缩级别的空项。

CreateEntry(String)

Source:
ZipArchive.cs
Source:
ZipArchive.cs
Source:
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 存档中的空项。

例外

entryNameEmpty

entryNamenull

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)

Source:
ZipArchive.cs
Source:
ZipArchive.cs
Source:
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 存档中的空项。

例外

entryNameEmpty

entryNamenull

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设置为 。

适用于