ZipFileExtensions.CreateEntryFromFile Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Archivuje soubor tím, že ho zkomprimuje a přidá do archivu zip.
Přetížení
| Name | Description |
|---|---|
| CreateEntryFromFile(ZipArchive, String, String) |
Archivuje soubor tím, že ho zkomprimuje a přidá do archivu zip. |
| CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) |
Archivuje soubor tak, že ho zkomprimuje pomocí zadané úrovně komprese a přidá ho do archivu zip. |
CreateEntryFromFile(ZipArchive, String, String)
Archivuje soubor tím, že ho zkomprimuje a přidá do archivu zip.
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
Parametry
- destination
- ZipArchive
Archiv zip, do které chcete soubor přidat.
- sourceFileName
- String
Cesta k souboru, který se má archivovat. Můžete zadat relativní nebo absolutní cestu. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.
- entryName
- String
Název položky, která se má vytvořit v archivu zip.
Návraty
Obálka pro novou položku v archivu zip.
Výjimky
sourceFileName je Empty, obsahuje pouze prázdné znaky nebo obsahuje aspoň jeden neplatný znak.
nebo
entryName je Empty.
sourceFileName nebo entryName je null.
Zadaná sourceFileNamecesta, název souboru nebo obojí překročí maximální délku definovanou systémem.
sourceFileName je neplatný (například je na nemapované jednotce).
Soubor určený sourceFileName nelze otevřít nebo je příliš velký na aktualizaci (aktuální limit je Int32.MaxValue.
sourceFileName určuje adresář.
nebo
Volající nemá požadovaná oprávnění pro přístup k souboru určenému uživatelem sourceFileName.
Soubor zadaný službou sourceFileName nebyl nalezen.
Parametr sourceFileName je v neplatném formátu.
nebo
Archiv zip nepodporuje psaní.
Archiv zip byl odstraněn.
Příklady
Následující příklad ukazuje, jak vytvořit novou položku v archivu ZIP z existujícího souboru.
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
Poznámky
Nová položka v archivu obsahuje obsah souboru určeného sourceFileName. Pokud položka se zadaným názvem (entryName) již v archivu existuje, vytvoří se druhá položka se stejným názvem. Vlastnost LastWriteTime položky je nastavena na čas poslední změny souboru v systému souborů.
Pokud ZipArchiveMode.Update je k dispozici, limit velikosti položky je omezen na Int32.MaxValue. Tento limit je způsoben tím, že režim aktualizace používá MemoryStream interně k tomu, aby bylo možné hledat při aktualizaci archivu a MemoryStream má maximální hodnotu rovnající se velikosti int.
Platí pro
CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)
Archivuje soubor tak, že ho zkomprimuje pomocí zadané úrovně komprese a přidá ho do archivu zip.
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
Parametry
- destination
- ZipArchive
Archiv zip, do které chcete soubor přidat.
- sourceFileName
- String
Cesta k souboru, který se má archivovat. Můžete zadat relativní nebo absolutní cestu. Relativní cesta se interpretuje jako relativní vzhledem k aktuálnímu pracovnímu adresáři.
- entryName
- String
Název položky, která se má vytvořit v archivu zip.
- compressionLevel
- CompressionLevel
Jedna z hodnot výčtu, která označuje, zda se má při vytváření položky zdůraznit účinnost rychlosti nebo komprese.
Návraty
Obálka pro novou položku v archivu zip.
Výjimky
sourceFileName je Empty, obsahuje pouze prázdné znaky nebo obsahuje aspoň jeden neplatný znak.
nebo
entryName je Empty.
sourceFileName nebo entryName je null.
sourceFileName je neplatný (například je na nemapované jednotce).
Zadaná sourceFileNamecesta, název souboru nebo obojí překročí maximální délku definovanou systémem.
Soubor určený sourceFileName nelze otevřít nebo je příliš velký na aktualizaci (aktuální limit je Int32.MaxValue.
sourceFileName určuje adresář.
nebo
Volající nemá požadovaná oprávnění pro přístup k souboru určenému uživatelem sourceFileName.
Soubor zadaný službou sourceFileName nebyl nalezen.
Parametr sourceFileName je v neplatném formátu.
nebo
Archiv zip nepodporuje psaní.
Archiv zip byl odstraněn.
Příklady
Následující příklad ukazuje, jak vytvořit novou položku v archivu zip z existujícího souboru a zadat úroveň komprese.
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
Poznámky
Nová položka v archivu obsahuje obsah souboru určeného sourceFileName. Pokud položka se zadaným názvem (entryName) již v archivu existuje, vytvoří se druhá položka se stejným názvem. Vlastnost LastWriteTime položky je nastavena na čas poslední změny souboru v systému souborů.
Pokud ZipArchiveMode.Update je k dispozici, limit velikosti položky je omezen na Int32.MaxValue. Tento limit je způsoben tím, že režim aktualizace používá MemoryStream interně k tomu, aby bylo možné hledat při aktualizaci archivu a MemoryStream má maximální hodnotu rovnající se velikosti int.