ZipFileExtensions.CreateEntryFromFile Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Arkiverar en fil genom att komprimera den och lägga till den i zip-arkivet.
Överlagringar
| Name | Description |
|---|---|
| CreateEntryFromFile(ZipArchive, String, String) |
Arkiverar en fil genom att komprimera den och lägga till den i zip-arkivet. |
| CreateEntryFromFile(ZipArchive, String, String, CompressionLevel) |
Arkiverar en fil genom att komprimera den med den angivna komprimeringsnivån och lägga till den i zip-arkivet. |
CreateEntryFromFile(ZipArchive, String, String)
Arkiverar en fil genom att komprimera den och lägga till den i zip-arkivet.
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
Parametrar
- destination
- ZipArchive
Zip-arkivet som filen ska läggas till i.
- sourceFileName
- String
Sökvägen till filen som ska arkiveras. Du kan ange antingen en relativ eller en absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.
- entryName
- String
Namnet på posten som ska skapas i zip-arkivet.
Returer
En omslutning för den nya posten i zip-arkivet.
Undantag
sourceFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.
-eller-
entryName är Empty.
sourceFileName eller entryName är null.
I sourceFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.
sourceFileName är ogiltigt (till exempel är det på en ommappad enhet).
Filen som anges av sourceFileName kan inte öppnas eller är för stor för att uppdateras (den aktuella gränsen är Int32.MaxValue.
sourceFileName anger en katalog.
-eller-
Anroparen har inte den behörighet som krävs för att komma åt filen som anges av sourceFileName.
Filen som anges av sourceFileName hittades inte.
Parametern sourceFileName är i ett ogiltigt format.
-eller-
Zip-arkivet stöder inte skrivning.
Zip-arkivet har tagits bort.
Exempel
I följande exempel visas hur du skapar en ny post i ett zip-arkiv från en befintlig fil.
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
Kommentarer
Den nya posten i arkivet innehåller innehållet i filen som anges av sourceFileName. Om det redan finns en post med det angivna namnet (entryName) i arkivet skapas en andra post med ett identiskt namn. Egenskapen LastWriteTime för posten är inställd på den senaste gången filen i filsystemet ändrades.
När ZipArchiveMode.Update är närvarande är storleksgränsen för en post begränsad till Int32.MaxValue. Den här gränsen beror på att uppdateringsläget använder ett MemoryStream internt läge för att tillåta den sökning som krävs vid uppdatering av ett arkiv och MemoryStream har ett maximalt värde som är lika med storleken på en int.
Gäller för
CreateEntryFromFile(ZipArchive, String, String, CompressionLevel)
Arkiverar en fil genom att komprimera den med den angivna komprimeringsnivån och lägga till den i zip-arkivet.
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
Parametrar
- destination
- ZipArchive
Zip-arkivet som filen ska läggas till i.
- sourceFileName
- String
Sökvägen till filen som ska arkiveras. Du kan ange antingen en relativ eller en absolut sökväg. En relativ sökväg tolkas som relativ till den aktuella arbetskatalogen.
- entryName
- String
Namnet på posten som ska skapas i zip-arkivet.
- compressionLevel
- CompressionLevel
Ett av uppräkningsvärdena som anger om hastighets- eller komprimeringseffektivitet ska betonas när posten skapas.
Returer
En omslutning för den nya posten i zip-arkivet.
Undantag
sourceFileName är Empty, innehåller endast tomt utrymme eller innehåller minst ett ogiltigt tecken.
-eller-
entryName är Empty.
sourceFileName eller entryName är null.
sourceFileName är ogiltigt (till exempel är det på en ommappad enhet).
I sourceFileNameöverskrider den angivna sökvägen, filnamnet eller båda den systemdefinierade maximala längden.
Filen som anges av sourceFileName kan inte öppnas eller är för stor för att uppdateras (den aktuella gränsen är Int32.MaxValue.
sourceFileName anger en katalog.
-eller-
Anroparen har inte den behörighet som krävs för att komma åt filen som anges av sourceFileName.
Filen som anges av sourceFileName hittades inte.
Parametern sourceFileName är i ett ogiltigt format.
-eller-
Zip-arkivet stöder inte skrivning.
Zip-arkivet har tagits bort.
Exempel
I följande exempel visas hur du skapar en ny post i ett zip-arkiv från en befintlig fil och anger komprimeringsnivån.
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
Kommentarer
Den nya posten i arkivet innehåller innehållet i filen som anges av sourceFileName. Om det redan finns en post med det angivna namnet (entryName) i arkivet skapas en andra post med ett identiskt namn. Egenskapen LastWriteTime för posten är inställd på den senaste gången filen i filsystemet ändrades.
När ZipArchiveMode.Update är närvarande är storleksgränsen för en post begränsad till Int32.MaxValue. Den här gränsen beror på att uppdateringsläget använder ett MemoryStream internt läge för att tillåta den sökning som krävs vid uppdatering av ett arkiv och MemoryStream har ett maximalt värde som är lika med storleken på en int.