メタデータを維持しながら GZipStream でファイルを圧縮する
-
05-07-2019 - |
質問
で圧縮した後の圧縮ファイルの拡張子を取得するにはどうすればよいですか? System.IO.Compression.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の回答にリンクされている記事は、かなり合理的な方法を提供しますこれを実装します。
この質問(漠然と関連している)には、しばらく前に質問がありました。