2009-06-16 9 views
2

System.IO.Compression.GZipStreamで圧縮した後に圧縮ファイルの拡張子を取得するにはどうすればよいですか?メタデータを維持しながらGZipStreamでファイルを圧縮

たとえば、元のファイルの名前がtest.docで、test.gzに圧縮されている場合、どのようなファイル拡張子を使用して解凍するのがわかりますか?

答えて

0

私は以前これをやらなければなりませんでした。解決策は、J#ライブラリを使用してそれを実行することです。あなたはまだそれをC#で書いています。 Microsoftのトピックに答えています

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

+1

この質問は助けることが戻っていくつかの時間を尋ねた(漠然と関連)もありました// WWW .icsharpcode.net/OpenSource/SharpZipLib /)とC#に固執する – RichardOD

+0

クローズドソース開発でオープンソースを使用することができない場合があります。これは当てはまらないかもしれませんが、既存のMicrosoft SDKからの解決策を提供します。 –

0

あなたの質問はよく分かりません。私は、圧縮が行われる前に拡張機能がどのようなものだったのかを「記憶」したいと思っていますか?

それが問題であれば、test.doc.gzへの圧縮という慣習が有効です。

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?

関連する問題