2017-04-05 4 views
1

데이터베이스 및 저장소 레코드의 일부 정보를 목록 구조로 요청하는 .NET C# 응용 프로그램이 있습니다.DotNetZip - 항목 목록에서 Zip 만들기

public Class Record { 

    public string name { get; set; } 
    public string surname { get; set; } 
} 

List<Record> lst = new List<Record>(); 

이 목록을 반복하여 각 레코드를 zip 파일에 추가하고 싶습니다. 이 모든 레코드 (라인 단위로 레코드)를 포함하는 txt 파일을 만들고 싶지 않고 디스크에 저장된 파일을 zip 파일로 만듭니다. 디스크에 중간 파일을 만들고 싶지 않습니다. zip 파일을 만들려면

DotNetZip을 사용하면 어떻게 할 수 있습니까?

+0

그것은 어떤 스트림에 작동합니다. 'MemoryStream'을 시도 했습니까? – itsme86

답변

1

ZipFile은 모든 스트림을 취할 수 있습니다.

ZipFile.AddEntry(string entryName, Stream stream) 

MemoryStream을 만든 다음 해당 스트림을 파일에 추가하려고합니다. 예를 들어

:

using (var stream = new MemoryStream()) { 
    using (var sw = new StreamWriter(stream)) { 
     foreach (var record in lst) { 
      sw.WriteLine(record.surname + "," + record.name); 
     } 
     sw.Flush(); 
     stream.Position = 0; 

     using (ZipFile zipFile = new ZipFile()) { 
      zipFile.AddEntry("Records.txt", stream); 
      zipFile.Save("archive.zip"); 
     } 
    } 
} 
+0

좋아요! 일! 고마워. – user1624552