2010-03-24 2 views
4

GZipStream을 사용하여 gz 파일을 생성하려고하는데 C#을 사용하고 있습니다. 내 문제는 문자열이 들어있는 목록이 있다는 것입니다. 암호로 보호 된 zip 파일을 만들어 문자열이 들어있는 텍스트 파일을 넣어야합니다.
나는 텍스트 파일을 생성하고 압축 한 다음 텍스트 파일을 삭제하고 싶지 않습니다. 나는 텍스트 파일을 포함하는 암호로 보호 된 zip 파일을 직접 만들고 싶다.
어떤 도움이 필요합니까?C#을 사용하여 압축 #

편집 : 나는 지퍼로 처리합니다. 지금 내가 만든 zip 파일에 대한 패스를 설정해야합니다. 어떤 도움?

+1

... DotNetZip 사용하여 작업을 수행하는 방법은 다음과 같습니다. 나는 그것이 당신이 실제로 원하는 것을 가정 할 것입니다. 그렇지 않다면 적절하게 질문을 수정하십시오. –

+0

@scatman :이 질문에 대한 답변이 있으면 받아 들인 대답을 표시하십시오. 다른 질문이있는 경우 "질문하기"버튼을 사용하여 새 질문을 시작하십시오. 감사합니다 – NotMe

+0

@scatman - Sharpziplib는 암호를 지원합니다 – Keltex

답변

3

SharpZipLib을 고려해야합니다. 그것은 오픈 소스 .net 압축 라이브러리입니다. 여기에는 .gz 또는 .zip 파일을 만드는 방법에 대한 예제가 포함되어 있습니다. .zip 파일에 직접 쓸 수 있습니다. 디스크에 중간 파일을 먼저 작성할 필요는 없습니다.

편집 : (편집에 대한 응답으로) SharpZipLib도 우편 번호를 지원합니다.

+0

동의 함 ...이 라이브러리는 잘 작동하며 .NET 관용구에 잘 맞습니다. – harpo

3

GZipStream을 감싸는 StreamWriter을 만들고 텍스트를 작성하기 만하면됩니다.

0

GZipStream은 .gz 파일을 만드는 데 사용할 수 있지만 .zip 파일과 다릅니다.

비밀번호로 보호 된 zip 파일을 만들려면 제 3 자 라이브러리로 이동해야합니다.

여기 GZipStream`이 .zip 파일을 만들지 않습니다,이 파일에 .gz 생성`, 보조 노트로

var sb = new System.Text.StringBuilder(); 
sb.Append("This is the text file..."); 
foreach (var item in listOfStrings) 
    sb.Append(item); 

// sb now contains all the content that will be placed into 
// the text file entry inside the zip. 

using (var zip = new Ionic.Zip.ZipFile()) 
{ 
    // set the password on the zip (implicitly enables encryption) 
    zip.Password = "Whatever.You.Like!!"; 
    // optional: select strong encryption 
    zip.Encryption = Ionic.Zip.EncryptionAlgorithm.WinZipAes256; 
    // add an entry to the zip, specify a name, specify string content 
    zip.AddEntry("NameOfFile.txt", sb.ToString()); 
    // save the file 
    zip.Save("MyFile.zip"); 
} 
관련 문제