2015-07-07 16 views
5

Chciałbym móc dołączyć plik z danym zamówieniem podczas tworzenia suwaka podczas korzystania z DotNet Zip.Jak złożyć zamówienie na pliki zawarte w pliku zip utworzonym za pomocą dotnet Zip

Pliki nie pojawiają się w kolejności, w jakiej zostały dodane do zamka. Teraz zamówienie wydaje się losowe.

Chciałbym mieć pliki xyz-Header, xyz-Summary włączone, a następnie resztę plików.

xyz-Header.csv

xyz-Summary.csv

xyz-Male.csv

xyz-Female.csv

xyz i nazwy dla inne pliki są programowo określone, ale pliki nagłówka i podsumowania są zawsze dołączone.

Code Snippet

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; 
    } 

Będę wdzięczny za każdą pomoc w tej sprawie.

+0

Czy widzimy żadnego kodu ...? – Rob

Odpowiedz

0

Nie ma powodów, pliki muszą być zamawiane w zamek błyskawiczny, można uzyskać listę plików i nadać mu dowolną kolejność lubisz:

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

Używam Ionic.zip.dll.I nie mam opcji ** zip.Order() ** –

+0

Następnie użyj 'OrderBy'. Zawsze to masz. –

Powiązane problemy