System.IO.Compression.GZipStream
으로 압축 한 후 압축 파일의 확장자를 얻으려면 어떻게해야합니까?메타 데이터를 유지하면서 GZipStream으로 파일 압축
예를 들어 원본 파일의 이름이 test.doc
이고 test.gz
으로 압축되는 경우 압축을 풀 때 사용할 파일 확장자를 어떻게 알 수 있습니까?
System.IO.Compression.GZipStream
으로 압축 한 후 압축 파일의 확장자를 얻으려면 어떻게해야합니까?메타 데이터를 유지하면서 GZipStream으로 파일 압축
예를 들어 원본 파일의 이름이 test.doc
이고 test.gz
으로 압축되는 경우 압축을 풀 때 사용할 파일 확장자를 어떻게 알 수 있습니까?
나는 얼마 전에 이것을해야했다. 해결 방법은 J # 라이브러리를 사용하여 수행하는 것입니다. 그러나 여전히 C#으로 작성합니다.
http://msdn.microsoft.com/en-us/magazine/cc164129.aspx
그의 마이크로 소프트는 주제에 대답합니다.
당신의 질문은 확실하지 않습니다. 압축을하기 전에 확장 기능을 "기억"하는 메커니즘이 필요하다고 생각합니까?
이것이 문제라면 test.doc.gz로 압축하는 test.doc 규칙이 적용됩니다.
파일 이름을 얻는 방법은 없습니다. 예를 들어 데이터 조각이 메모리에 만들어지고 네트워크 연결을 통해 전송되는 경우 파일 이름이 전혀 없을 수도 있습니다.
파일 확장명을 바꾸는 대신 추가하지 않으십시오. 예 : test.doc.gz 그러면 압축을 풀 때 간단히 제거 할 수 있습니다.
test.gz는 압축 된 내용에 대한 메타 데이터가없는 원시 바이트 스트림입니다 (예 : 원본 파일 이름, 확장자 등). 당신이해야 할 일은 아카이브에 포함 된 각 파일에 대한 gzip 스트림과 메타 데이터를 포함하는 아카이브를 생성하는 것입니다.
Mech Software's answer에 링크 된 문서는이를 구현하는 데 매우 합리적인 방법을 제공합니다. 차라리 SharpZipLib (HTTP와 같은 라이브러리를 사용하는 것
개인적으로How to compress a directory with the built in .net compression classes?
:
이 질문은 밖으로 도움이 될 수 백 시간을 요청 (막연하게 관련)도 있었다 // www가 .icsharpcode.net/OpenSource/SharpZipLib /) 및 C# – RichardOD
에 고정 폐쇄 형 소스 개발에서 오픈 소스를 사용할 수없는 경우가 있습니다. 이는 사실이 아니지만 기존 Microsoft SDK 내에서 솔루션을 제공합니다. –