ZipFileExtensions.CreateEntryFromFile 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
通过压缩并将其添加到邮编存档的存档文件。
重载
CreateEntryFromFile(ZipArchive, String, String) |
通过压缩并将其添加到邮编存档的存档文件。 |
CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) |
通过使用指定压缩级别压缩并将其添加到邮编存档的存档文件。 |
CreateEntryFromFile(ZipArchive, String, String)
通过压缩并将其添加到邮编存档的存档文件。
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 存档中新项的包装。
例外
sourceFileName
或 entryName
为 null
。
在 sourceFileName
内,指定的路径、文件名或者两者都超出了系统定义的最大长度。
sourceFileName
无效(例如,它位于未映射的驱动器上)。
无法打开指定的 sourceFileName
文件,或者文件太大,无法更新 (当前限制为 Int32.MaxValue) 。
未找到 sourceFileName
指定的文件。
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)
通过使用指定压缩级别压缩并将其添加到邮编存档的存档文件。
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 存档中新项的包装。
例外
sourceFileName
或 entryName
为 null
。
sourceFileName
无效(例如,它位于未映射的驱动器上)。
在 sourceFileName
内,指定的路径、文件名或者两者都超出了系统定义的最大长度。
无法打开指定的 sourceFileName
文件,或者文件太大,无法更新 (当前限制为 Int32.MaxValue) 。
未找到 sourceFileName
指定的文件。
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 的大小。