2015-07-07 8 views
5

Vorrei poter includere il file con un determinato ordine durante la creazione di un zip durante l'utilizzo di DotNet Zip.Come dare un ordine ai file inclusi nel file zip creato con dotnet Zip

I file non vengono visualizzati nella sequenza in cui sono stati aggiunti allo zip. Ora l'ordine sembra essere casuale.

Mi piacerebbe avere i file xyz-Header, xyz-Summary inclusi prima e il resto dei file.

xyz-Header.csv

xyz-Summary.csv

xyz-Male.csv

xyz-Female.csv

xyz e nomi per altri file sono determinati a livello di programmazione ma i file di intestazione e di riepilogo sono sempre incluso.

frammento di codice

private MemoryStream GetZip() 
    { 
     ZipFile zip = new ZipFile(); 
     List<string, string> files = getFiles(); 
     zip.AddEntry("xyz-Header.csv", getHeader(files)); 
     zip.AddEntry("xyz-Summary", getSummary(files)); 

     foreach (var x in files) 
     { 
      zip.AddEntry("xyz-" + x.Item1 + ".csv", x.Item2); 
     } 

     MemoryStream memoryStream = new MemoryStream(); 
     zip.Save(memoryStream); 
     memoryStream.position = 0; 
     return memoryStream; 
    } 

Gradirei qualsiasi aiuto su questo.

+0

Possiamo vedere alcun codice ...? – Rob

risposta

0

Non v'è ragione i file devono essere ordinati nello zip, è possibile ottenere l'elenco dei file e il dare qualsiasi ordine che ti piace:

using (ZipFile zip = ZipFile.Read(NameOfExistingZipFile)) 
    { 
    foreach (ZipEntry e in zip.Order(x => x.FileName)) 
    { 
     // do your styff e.Extract(); 
    } 
    } 
+0

Sto usando Ionic.zip.dll.E non ho l'opzione di ** zip.Order() ** –

+0

Quindi utilizzare 'OrderBy'. Lo hai sempre. –