sintassi:
using (ZipArchive oggetto = ZipFile.OpenRead(STRINGA NOMEFILE))
{
...}
metodi/proprietà:
esempio: lista files meorizzati
Temp/
Temp/prova/
Temp/prova/filetest 1.txt
Temp/prova/filetest 2.txt
Temp/prova/filetest 3.txt
foreach (ZipArchiveEntry entry in oggetto.Entries) per ciascun elemento entity dell'oggetto ZipArchive}
{if (entry.propietà ....) se l'elemento dell'archivio corrisponde a quanto restituito dalla propietà}
{entry.ExtractToFile("path\nome_file", true / false); estraggo il file con il nome e path indicato nella stringa, abilito o meno la sovrascrittura}
propietà ZipArchiveEntry
esempio: estraggo file subita da un zip
using (ZipArchive filezip = ZipFile.OpenRead(@"C:\Users\andrea\Downloads\ciao.zip"))
{
foreach (ZipArchiveEntry entry in filezip.Entries)
}
{
if (entry.FullName.EndsWith(".srt", StringComparison.OrdinalIgnoreCase)) tolgo il key sensitive nella ricerca
}
{
entry.ExtractToFile(Path.Combine(@"C:\Users\andrea\Downloads\", entry.Name));
}
esempio: estraggo tutti i file da un zip con verifica se già esistente
string dirdestinazione = @"C:\Destinazione\"
using (ZipArchive filezip = ZipFile.OpenRead(@"C:\Download\file.zip"))
{
foreach (ZipArchiveEntry entry in filezip.Entries)}
{if (File.Exists(dirdestinazione + entry)) verifico se esiste nella destinazione ed in caso lo cancello}
{File.Delete(dirdestinazione + entry);}
if (!entry.FullName.EndsWith("/")) verifico se l'entry é il nome di una direcotry passata (nel zip si usa il /) ed in caso ignoro l'entry
{entry.ExtractToFile(dirdestinazione + entry);}
oggetto.ExtractToDirectory("destinazione"); estraggo tutti i file nella directory indicata (non prevede sovrascrittura)}
esempio: estraggo tutti i file in una directory temporanea, sposto il file che mi inteerssa e cancello la directory temporanea
string origine = @"C:\Download\"
using (ZipArchive archive = ZipFile.OpenRead(origine + "file.zip"))
{
Directory.Delete(@"temp\", true); cancello la directory temp non si sa mai che esista già}
Directory.CreateDirectory(@"temp\"); ricreo la directory temp vuota
archive.ExtractToDirectory(@"temp\"); estraggo tutto la dentro
string[] filestrdentro = Directory.GetFiles(@"temp\", "*.srt"); individuo il file srt
File.Move(filestrdentro[0], origine + Path.GetFileName(filestrdentro[0])); sposto il primo file srt trovato in origine
Directory.Delete(@"temp\", true); cancello la directory