2009-06-16 2 views

답변

0

나는 얼마 전에 이것을해야했다. 해결 방법은 J # 라이브러리를 사용하여 수행하는 것입니다. 그러나 여전히 C#으로 작성합니다.

http://msdn.microsoft.com/en-us/magazine/cc164129.aspx

그의 마이크로 소프트는 주제에 대답합니다.

+1

:

이 질문은 밖으로 도움이 될 수 백 시간을 요청 (막연하게 관련)도 있었다 // www가 .icsharpcode.net/OpenSource/SharpZipLib /) 및 C# – RichardOD

+0

에 고정 폐쇄 형 소스 개발에서 오픈 소스를 사용할 수없는 경우가 있습니다. 이는 사실이 아니지만 기존 Microsoft SDK 내에서 솔루션을 제공합니다. –

0

당신의 질문은 확실하지 않습니다. 압축을하기 전에 확장 기능을 "기억"하는 메커니즘이 필요하다고 생각합니까?

이것이 문제라면 test.doc.gz로 압축하는 test.doc 규칙이 적용됩니다.

5

파일 이름을 얻는 방법은 없습니다. 예를 들어 데이터 조각이 메모리에 만들어지고 네트워크 연결을 통해 전송되는 경우 파일 이름이 전혀 없을 수도 있습니다.

파일 확장명을 바꾸는 대신 추가하지 않으십시오. 예 : test.doc.gz 그러면 압축을 풀 때 간단히 제거 할 수 있습니다.

0

test.gz는 압축 된 내용에 대한 메타 데이터가없는 원시 바이트 스트림입니다 (예 : 원본 파일 이름, 확장자 등). 당신이해야 할 일은 아카이브에 포함 된 각 파일에 대한 gzip 스트림과 메타 데이터를 포함하는 아카이브를 생성하는 것입니다.

Mech Software's answer에 링크 된 문서는이를 구현하는 데 매우 합리적인 방법을 제공합니다. 차라리 SharpZipLib (HTTP와 같은 라이브러리를 사용하는 것

개인적으로

How to compress a directory with the built in .net compression classes?