掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
ファイルを圧縮(lzh形式やzip形式等)に変換するには? (ID:113945)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
> ZIPに圧縮するこは出来たんですけれど解凍ができません。 あれれ、こちらでは解凍できたのけれどね。何が違うのでしょう。 (CRCチェックも行ってみましたが、こちらでは問題無しと報告されました) なお、こちらで解凍に使ったのは、 ・Windows XPのエクスプローラ(圧縮フォルダ機能) ・ExpLzh 3.58 (ZIP32.DLL 2.30, UNZIP32.DLL 5.40) ・解凍レンジ 1.41 の3種ですが、いずれも問題なく展開されました。(WinXPで確認) もしかしたら、更新日情報を指定していないのが原因かもしれません。 setTimeメソッドも使ってみてください。また、圧縮指定したファイルが、 本当に存在するかどうかなども確認してみてください。 > あと、圧縮した後にエラーが出ます。 この点に関しても、こちらではエラーが発生しないため、わかりません。 正直なところ、J#やJavaには詳しく無いため、修正を求められても、 どこを直すべきか、まったく検討が付いていなかったりします。すみません。 > 圧縮形式(なるべく全て)などにしたい場合はソースのどこを変えればいいか教えてください。 ソースの一部を変える程度では対応できません。 圧縮用の統一されたインターフェイスが.NETに用意されているわけでは ありませんので、圧縮形式に応じて、全く異なるコードを書く必要があります。 また、圧縮アルゴリズムにはいろいろな種類の物があります。その中には、 アルゴリズム自体が一般公開されておらず、圧縮/展開用のDLLが市販されて いたりするような物さえありますので、「全て」に対応させるのは、 事実上不可能かと思いますよ。個別に調べて、対応させていってください。 たとえば、Windowsで良く使われる *.cab 形式であれば、Microsoft から Cabinet SDKと言う物が配布されていますので、そちらの資料を参考にして見てください。 あるいは、統合アーカイブプロジェクトによるDLLのうち、圧縮機能を持った アーカイバDLL(UNLHA32.DLL等)を利用する事もできるかと思います。 なお、統合アーカイブに関しては有名なので、google等で検索すれば VB.NETでの利用例も見つかりますので、ここでは説明を省きます。 それ以外の手法としては、「コマンドライン指定で動作するプログラム」(LHA.EXEなど)を 用意して、それを呼び出すというのも手かと思います。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.