2015-07-07 1 views
5

Я хотел был бы иметь возможность включить архив с данным заказом во время создания zip при использовании DotNet Zip.Как подать заказ на файлы, включенные в zip-файл, созданный с помощью dotnet Zip

Файлы не отображаются в последовательности, которую они добавили в zip.For сейчас порядок выглядит случайным.

Я хотел бы иметь файлы xyz-Header, xyz-Summary, включенные сначала, а затем остальные файлы.

хуг-Header.csv

хуг-Summary.csv

хуг-Male.csv

хуг-Female.csv

хуг и имена для другие файлы программно определены, но файлы заголовка и сводки всегда включены.

Код сниппета

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

Я был бы признателен за любую помощь по этому вопросу.

+0

Можем ли мы видим код ...? – Rob

ответ

0

Там не причина файлы должны быть заказаны в почтовый индекс, вы можете получить список файлов и дать ему любой заказ вы любите:

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

Я использую Ionic.zip.dll.And у меня нет опции ** zip.Order() ** –

+0

Затем используйте 'OrderBy'. У тебя это всегда есть. –