2011-11-22 10 views
0

Asp.Net을 사용하여 웹 응용 프로그램을 개발 중이며 SharpZipLib을 사용하여 Open Office의 odt 파일과 이후 docx 파일 (ms 사무실). odt 파일 (예 : zip 파일)을 열어 xml 파일을 변경하고 zip으로 다시 한 번 브라우저에 보냅니다. 클라이언트에게 보냅니다.메모리 스트림에서 파일 압축 해제

파일 시스템에서이 작업을 수행 할 수 있지만 일시적으로 디스크에 공간이 생겨서 필요하지 않습니다. 메모리에서 MemoryStream 클래스를 사용하여이 작업을 수행하려고합니다. 그러나 SharpZipLib을 사용하여 메모리 스트림에서 폴더/파일의 압축을 해제하고 변경 한 후 다시 압축하는 방법을 모르겠습니다. 이 작업을 수행하는 방법에 대한 샘플이 있습니까?

답변

0

당신은 같은 것을 사용할 수 있습니다 주셔서 감사합니다

Stream inputStream = //... File.OpenRead(...); 

    //for read file 
ZipInputStream zipInputStream = new ZipInputStream(inputStream)); 

//for output 
MemoryStream memoryStream = new MemoryStream(); 



using (ZipOutputStream zipStream = new ZipOutputStream(memoryStream)) 
{ 




      ZipEntry entry = new ZipEntry("..."); 
      //... 

      zipStream.PutNextEntry(entry); 
      zipStream.Write(data, 0, data.Length); 
      //... 


      zipStream.Finish(); 
      zipStream.Close(); 

} 

편집 : 당신은 당신의 파일을 압축 해제 일반적으로 필요

, ZipEntry를, 변화를 얻을 MemoryStream을 함께 ZipOutputStream이에 쓰기 . 이 기사 사용 http://www.codeproject.com/KB/cs/Zip_UnZip.aspx

+0

안녕하세요 @ Sergey, "데이터"변수는 무엇입니까? 바이트 []입니까? 어떻게 만들었습니까? 코드를 보내 주셔서 감사합니다! –

+0

확인 코드를 변경해야합니다. –