2011-11-29 10 views
6

Sto utilizzando SharpZipLib in un progetto e mi chiedo se è possibile utilizzarlo per cercare all'interno di un file zip e se uno dei file contiene dati modificati in un intervallo Sto cercando quindi di selezionare quel file e copiarlo in una nuova directory? Qualcuno sa id questo è possibile?SharpZipLib Esaminare e selezionare il contenuto di un file ZIP

+0

Sono sicuro che è possibile. Dovresti aprire l'archivio e guardare i contenuti della raccolta di file. A seconda se l'ultima informazione di modifica è resa pubblica determinerà se sarai in grado di tutto il resto. Non è il motivo per cui non sarà reso pubblico, la libreria SharpZibLib è basata su questa opzione, quindi dovrebbe anche permetterlo. Altrimenti ci sono sempre altre soluzioni che lo permetterebbero. –

risposta

8

Sì, è possibile enumerare i file di un file zip utilizzando SharpZipLib. Puoi anche estrarre i file dal file zip e copiarli in una directory sul tuo disco.

Ecco un piccolo esempio:

using (var fs = new FileStream(@"c:\temp\test.zip", FileMode.Open, FileAccess.Read)) 
{ 
    using (var zf = new ZipFile(fs)) 
    { 
    foreach (ZipEntry ze in zf) 
    { 
     if (ze.IsDirectory) 
     continue; 

     Console.Out.WriteLine(ze.Name);    

     using (Stream s = zf.GetInputStream(ze)) 
     { 
     byte[] buf = new byte[4096]; 
     // Analyze file in memory using MemoryStream. 
     using (MemoryStream ms = new MemoryStream()) 
     { 
      StreamUtils.Copy(s, ms, buf); 
     } 
     // Uncomment the following lines to store the file 
     // on disk. 
     /*using (FileStream fs = File.Create(@"c:\temp\uncompress_" + ze.Name)) 
     { 
      StreamUtils.Copy(s, fs, buf); 
     }*/ 
     }    
    } 
    } 
} 

Nell'esempio precedente uso un MemoryStream per memorizzare il ZipEntry in memoria (per ulteriori analisi). È anche possibile memorizzare ZipEntry (se soddisfa determinati criteri) su disco.

Spero che questo aiuti.

+0

Questo è esattamente quello che stavo cercando, molto apprezzato !! – DukeOfMarmalade

Problemi correlati