ZipFile.Open Metódus
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Megnyit egy zip-archívumot a megadott elérési úton és a megadott módban.
Túlterhelések
| Name | Description |
|---|---|
| Open(String, ZipArchiveMode) |
Megnyit egy zip-archívumot a megadott elérési úton és a megadott módban. |
| Open(String, ZipArchiveMode, Encoding) |
Megnyit egy zip-archívumot a megadott elérési úton, a megadott módban, valamint a megadott karakterkódolás használatával a bejegyzésnevekhez és megjegyzésekhez. |
Open(String, ZipArchiveMode)
Megnyit egy zip-archívumot a megadott elérési úton és a megadott módban.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode);
public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode);
static member Open : string * System.IO.Compression.ZipArchiveMode -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode) As ZipArchive
Paraméterek
- archiveFileName
- String
A megnyitni kívánt archívum elérési útja, amely relatív vagy abszolút elérési útként van megadva. A relatív elérési út az aktuális munkakönyvtárhoz képest értelmezve van.
- mode
- ZipArchiveMode
Az egyik számbavételi érték, amely meghatározza a megnyitott archívum bejegyzéseiben engedélyezett műveleteket.
Válaszok
A megnyitott zip archívum.
Kivételek
archiveFileName is Empty, csak üres szóközt tartalmaz, vagy legalább egy érvénytelen karaktert tartalmaz.
archiveFileName az null.
A archiveFileNamemegadott elérési út, fájlnév vagy mindkettő meghaladja a rendszer által megadott maximális hosszt.
archiveFileName érvénytelen vagy nem létezik (például egy nem leképezett meghajtón).
archiveFileName nem nyitható meg.
-vagy-
mode értékre Createvan állítva, de a megadott archiveFileName fájl már létezik.
-vagy-
Meghatározatlan I/O-hiba történt a fájl megnyitásakor.
archiveFileName egy könyvtárat határoz meg.
-vagy-
A hívó nem rendelkezik a szükséges engedéllyel a megadott archiveFileNamefájl eléréséhez.
mode érvénytelen értéket ad meg.
mode értékre Readvan állítva, de a megadott archiveFileName fájl nem található.
archiveFileName érvénytelen formátumot tartalmaz.
archiveFileName nem értelmezhető zip archívumként.
-vagy-
mode van Update, de egy bejegyzés hiányzik vagy sérült, és nem olvasható.
-vagy-
mode van Update, de egy bejegyzés túl nagy ahhoz, hogy beleférjen a memóriába.
Példák
Az alábbi példa bemutatja, hogyan nyithat meg zip archívumot frissítési módban, és hogyan adhat hozzá bejegyzést az archívumhoz.
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);
}
}
}
}
open System.IO.Compression
let zipPath = @"c:\users\exampleuser\start.zip"
let extractPath = @"c:\users\exampleuser\extract"
let newFile = @"c:\users\exampleuser\NewFile.txt"
do
use archive = ZipFile.Open(zipPath, ZipArchiveMode.Update)
archive.CreateEntryFromFile(newFile, "NewEntry.txt") |> ignore
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
Megjegyzések
Amikor beállítja a mode paramétert Read, az archívum megnyílik Open az FileMode enumerálásból fájlmód-értékként. Ha az archívum nem létezik, kivétel FileNotFoundException jelenik meg.
mode A paraméter Read beállítása egyenértékű a metódus meghívásávalOpenRead.
Amikor beállítja a mode paramétert Create, a rendszer fájlmód-értékként megnyitja FileMode.CreateNew az archívumot. Ha az archívum már létezik, a program eldob egy fájlt IOException .
Amikor beállítja a mode paramétert Update, a rendszer fájlmód-értékként megnyitja FileMode.OpenOrCreate az archívumot. Ha az archívum létezik, megnyílik. A meglévő bejegyzések módosíthatók, és új bejegyzések hozhatók létre. Ha az archívum nem létezik, létrejön egy új archívum; azonban a zip-archívumok Update módban történő létrehozása nem olyan hatékony, mint a módban történő létrehozása Create .
A következőre érvényes:
Open(String, ZipArchiveMode, Encoding)
Megnyit egy zip-archívumot a megadott elérési úton, a megadott módban, valamint a megadott karakterkódolás használatával a bejegyzésnevekhez és megjegyzésekhez.
public:
static System::IO::Compression::ZipArchive ^ Open(System::String ^ archiveFileName, System::IO::Compression::ZipArchiveMode mode, System::Text::Encoding ^ entryNameEncoding);
public static System.IO.Compression.ZipArchive Open(string archiveFileName, System.IO.Compression.ZipArchiveMode mode, System.Text.Encoding entryNameEncoding);
static member Open : string * System.IO.Compression.ZipArchiveMode * System.Text.Encoding -> System.IO.Compression.ZipArchive
Public Shared Function Open (archiveFileName As String, mode As ZipArchiveMode, entryNameEncoding As Encoding) As ZipArchive
Paraméterek
- archiveFileName
- String
A megnyitni kívánt archívum elérési útja, amely relatív vagy abszolút elérési útként van megadva. A relatív elérési út az aktuális munkakönyvtárhoz képest értelmezve van.
- mode
- ZipArchiveMode
Az egyik számbavételi érték, amely meghatározza a megnyitott archívum bejegyzéseiben engedélyezett műveleteket.
- entryNameEncoding
- Encoding
Az archívumban lévő bejegyzésnevek és megjegyzések olvasásához vagy írásához használandó kódolás. Csak akkor adjon meg értéket ehhez a paraméterhez, ha kódolásra van szükség a bejegyzésnevek és megjegyzések UTF-8 kódolását nem támogató zip archív eszközökkel és kódtárakkal való együttműködéshez.
Válaszok
A megnyitott zip archívum.
Kivételek
archiveFileName is Empty, csak üres szóközt tartalmaz, vagy legalább egy érvénytelen karaktert tartalmaz.
-vagy-
entryNameEncoding az UTF-8-tól eltérő Unicode-kódolásra van beállítva.
archiveFileName az null.
A archiveFileNamemegadott elérési út, fájlnév vagy mindkettő meghaladja a rendszer által megadott maximális hosszt.
archiveFileName érvénytelen vagy nem létezik (például egy nem leképezett meghajtón).
archiveFileName nem nyitható meg.
-vagy-
mode értékre Createvan állítva, de a megadott archiveFileName fájl már létezik.
-vagy-
Meghatározatlan I/O-hiba történt a fájl megnyitásakor.
archiveFileName egy könyvtárat határoz meg.
-vagy-
A hívó nem rendelkezik a szükséges engedéllyel a megadott archiveFileNamefájl eléréséhez.
mode érvénytelen értéket ad meg.
mode értékre Readvan állítva, de a megadott archiveFileName fájl nem található.
archiveFileName érvénytelen formátumot tartalmaz.
archiveFileName nem értelmezhető zip archívumként.
-vagy-
mode van Update, de egy bejegyzés hiányzik vagy sérült, és nem olvasható.
-vagy-
mode van Update, de egy bejegyzés túl nagy ahhoz, hogy beleférjen a memóriába.
Megjegyzések
Amikor beállítja a mode paramétert Read, a rendszer fájlmód-értékként megnyitja FileMode.Open az archívumot. Ha az archívum nem létezik, kivétel FileNotFoundException jelenik meg.
mode A paraméter Read beállítása egyenértékű a metódus meghívásávalOpenRead.
Amikor beállítja a mode paramétert Create, a rendszer fájlmód-értékként megnyitja FileMode.CreateNew az archívumot. Ha az archívum már létezik, a program eldob egy fájlt IOException .
Amikor beállítja a mode paramétert Update, a rendszer fájlmód-értékként megnyitja FileMode.OpenOrCreate az archívumot. Ha az archívum létezik, megnyílik. A meglévő bejegyzések módosíthatók, és új bejegyzések hozhatók létre. Ha az archívum nem létezik, létrejön egy új archívum; azonban a zip-archívumok Update módban történő létrehozása nem olyan hatékony, mint a módban történő létrehozása Create .
Amikor megnyit egy zip-archívumfájlt olvasásra, és entryNameEncoding be van állítva null, a bejegyzésnevek és a megjegyzések a következő szabályok szerint lesznek dekódolva:
- Ha a nyelvi kódolás jelzője (a helyi fájlfejléc általános célú bitjelölőjében) nincs beállítva, a rendszer az aktuális rendszer alapértelmezett kódlapját használja a bejegyzés nevének és megjegyzésének dekódolásához.
- A nyelvi kódolási jelző beállításakor az UTF-8 a bejegyzés nevének és megjegyzésének dekódolására szolgál.
Amikor megnyit egy zip-archívumfájlt olvasásra, és entryNameEncoding nem a következő értékre nullvan beállítva, a bejegyzésneveket és a megjegyzéseket a rendszer az alábbi szabályok szerint dekódolja:
- Ha a nyelvi kódolási jelző nincs beállítva, a megadott
entryNameEncodingérték a bejegyzés nevének és megjegyzésének dekódolására szolgál. - A nyelvi kódolási jelző beállításakor az UTF-8 a bejegyzés nevének és megjegyzésének dekódolására szolgál.
Ha archivált fájlokba ír, és entryNameEncoding a beállítás értéke nulla következő szabályok szerint van beállítva, a bejegyzésnevek és a megjegyzések kódolása a következő szabályok szerint történik:
- Az ASCII-tartományon kívüli karaktereket tartalmazó bejegyzésnevekhez vagy megjegyzésekhez be van állítva a nyelvkódoló jelző, a bejegyzésnevek és megjegyzések pedig az UTF-8 használatával vannak kódolva.
- A csak ASCII-karaktereket tartalmazó bejegyzésnevek vagy megjegyzések esetében nincs beállítva a nyelvkódoló jelző, a bejegyzésneveket és a megjegyzéseket pedig az aktuális rendszer alapértelmezett kódlapja kódolja.
Ha archivált fájlokat ír, és entryNameEncoding nem egy értékre nullvan beállítva, a megadott entryNameEncoding érték a bejegyzésneveket és a megjegyzéseket bájtokra kódolja. A nyelvi kódolás jelzője (a helyi fájlfejléc általános célú bitjelölőjében) csak akkor van beállítva, ha a megadott kódolás UTF-8 kódolás.