ZipFileExtensions.CreateEntryFromFile 方法

定义

通过压缩并将其添加到邮编存档的存档文件。

重载

CreateEntryFromFile(ZipArchive, String, String)

通过压缩并将其添加到邮编存档的存档文件。

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

通过使用指定压缩级别压缩并将其添加到邮编存档的存档文件。

CreateEntryFromFile(ZipArchive, String, String)

Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs

通过压缩并将其添加到邮编存档的存档文件。

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String) As ZipArchiveEntry

参数

destination
ZipArchive

要添加该文件的 zip 存档。

sourceFileName
String

待存档的文件的路径。 可以指定相对或绝对路径。 相对路径被解释为相对于当前工作目录。

entryName
String

要在 zip 存档中生成的输入的名称。

返回

zip 存档中新项的包装。

例外

sourceFileNameEmpty,仅包含空格,或者包含至少一个无效字符。

- 或 -

entryNameEmpty

sourceFileNameentryNamenull

sourceFileName 内,指定的路径、文件名或者两者都超出了系统定义的最大长度。

sourceFileName 无效(例如,它位于未映射的驱动器上)。

无法打开指定的 sourceFileName 文件,或者文件太大,无法更新 (当前限制为 Int32.MaxValue) 。

sourceFileName 指定目录。

- 或 -

调用方没有访问 sourceFileName 指定的文件的权限。

未找到 sourceFileName 指定的文件。

sourceFileName 参数格式无效。

- 或 -

zip 存档不支持写入。

zip 存档已释放。

示例

以下示例演示如何从现有文件在 zip 存档中创建新条目。

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt");
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

注解

存档中的新条目包含 由 sourceFileName指定的文件的内容。 如果存档中已存在具有指定名称 (entryName) 的条目,则会创建具有相同名称的第二个条目。 条目 LastWriteTime 的 属性设置为上次更改文件系统上的文件时。

存在 时 ZipArchiveMode.Update ,条目的大小限制限制为 Int32.MaxValue。 此限制是因为更新模式在内部使用 MemoryStream 以允许在更新存档时所需的查找,并且 MemoryStream 其最大大小等于 int 的大小。

适用于

CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)

Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs
Source:
ZipFileExtensions.ZipArchive.Create.cs

通过使用指定压缩级别压缩并将其添加到邮编存档的存档文件。

public:
[System::Runtime::CompilerServices::Extension]
 static System::IO::Compression::ZipArchiveEntry ^ CreateEntryFromFile(System::IO::Compression::ZipArchive ^ destination, System::String ^ sourceFileName, System::String ^ entryName, System::IO::Compression::CompressionLevel compressionLevel);
public static System.IO.Compression.ZipArchiveEntry CreateEntryFromFile (this System.IO.Compression.ZipArchive destination, string sourceFileName, string entryName, System.IO.Compression.CompressionLevel compressionLevel);
static member CreateEntryFromFile : System.IO.Compression.ZipArchive * string * string * System.IO.Compression.CompressionLevel -> System.IO.Compression.ZipArchiveEntry
<Extension()>
Public Function CreateEntryFromFile (destination As ZipArchive, sourceFileName As String, entryName As String, compressionLevel As CompressionLevel) As ZipArchiveEntry

参数

destination
ZipArchive

要添加该文件的 zip 存档。

sourceFileName
String

待存档的文件的路径。 可以指定相对或绝对路径。 相对路径被解释为相对于当前工作目录。

entryName
String

要在 zip 存档中生成的输入的名称。

compressionLevel
CompressionLevel

指示创建项时是否强调速度或压缩有效性的枚举值之一。

返回

zip 存档中新项的包装。

例外

sourceFileNameEmpty,仅包含空格,或者包含至少一个无效字符。

- 或 -

entryNameEmpty

sourceFileNameentryNamenull

sourceFileName 无效(例如,它位于未映射的驱动器上)。

sourceFileName 内,指定的路径、文件名或者两者都超出了系统定义的最大长度。

无法打开指定的 sourceFileName 文件,或者文件太大,无法更新 (当前限制为 Int32.MaxValue) 。

sourceFileName 指定目录。

- 或 -

调用方没有访问 sourceFileName 指定的文件的权限。

未找到 sourceFileName 指定的文件。

sourceFileName 参数格式无效。

- 或 -

zip 存档不支持写入。

zip 存档已释放。

示例

以下示例演示如何从现有文件在 zip 存档中创建新条目,并指定压缩级别。

using System;
using System.IO;
using System.IO.Compression;

namespace ConsoleApplication
{
    class Program
    {
        static void Main(string[] args)
        {
            string zipPath = @"c:\users\exampleuser\start.zip";
            string extractPath = @"c:\users\exampleuser\extract";
            string newFile = @"c:\users\exampleuser\NewFile.txt";

            using (ZipArchive archive = ZipFile.Open(zipPath, ZipArchiveMode.Update))
            {
                archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest);
                archive.ExtractToDirectory(extractPath);
            }
        }
    }
}
Imports System.IO
Imports System.IO.Compression

Module Module1

    Sub Main()
        Dim zipPath As String = "c:\users\exampleuser\end.zip"
        Dim extractPath As String = "c:\users\exampleuser\extract"
        Dim newFile As String = "c:\users\exampleuser\NewFile.txt"

        Using archive As ZipArchive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
            archive.CreateEntryFromFile(newFile, "NewEntry.txt", CompressionLevel.Fastest)
            archive.ExtractToDirectory(extractPath)
        End Using
    End Sub

End Module

注解

存档中的新条目包含 由 sourceFileName指定的文件的内容。 如果存档中已存在具有指定名称 (entryName) 的条目,则会创建具有相同名称的第二个条目。 条目 LastWriteTime 的 属性设置为上次更改文件系统上的文件时。

存在 时 ZipArchiveMode.Update ,条目的大小限制限制为 Int32.MaxValue。 此限制是因为更新模式在内部使用 MemoryStream 以允许在更新存档时所需的查找,并且 MemoryStream 其最大大小等于 int 的大小。

适用于