ダウンロードありがとうございます。
これは、unlha.dll & unzip.dll for WindowsCE に
コマンドを送り、圧縮/解凍を実現するためのソフトです。
このソフトは単体では動作しません。 LHA.exe を使うためには unlha.dll、 ZIP.exe を使うためには unzip.dllがインストールされている 必要があります。
「コンソールがないのにどうやって使うんだ!」 と思われるでしょうが、ま、なんとかしてください (なんじゃそりゃ)。 ちなみにワタシは、 nScript と併用してます。
以下に、LHA.exe と ZIP.exe に送るべきコマンド文字列について、 説明しています。
コマンドの書式は以下の通りです。 [<command>] [[-<switch>[+|-|0|1|2]]...] <archive_file_name>[.LZH] [[<base_directory_name>\] [<path_name>|<wild_name>]...]]... command : 命令 switch : スイッチ archive_file_name : 書庫名 base_directory_name : 基準ディレクトリ path_name : パス (ファイル) 名 wild_name : ワイルドカード path_name に半角スペースが含まれる場合は、 前後をダブルクォート " " で囲んでください。 (もちろん、半角スペースがないときに、" " で囲んでも 正しく認識されます) ex. "a \test.lzh "\My Documents\test.txt"" a: 書庫にファイルを追加 ファイルを圧縮して書庫に格納します。2 番目の引数に出力先の ファイル名。3 番目には、基準ディレクトリを指定(必要時のみ)。 4 番目以降に圧縮したいファイルを指定。 ワイルドカードも中途半端に使えます。 基準ディレクトリの詳細は、以下の基準ディレクトリについて を参考にしてください。 ex. -基準ディレクトリを使わない例- "a \test.lzh \test\*.*" → test.lzh という名前で、\test ディレクトリ以下のファイルを 圧縮する。 "a \test2 \test\*.dll" → test2.lzh という名前で、\test ディレクトリの、拡張子が .dll のファイルを圧縮する。 e もしくは x : 書庫内のファイルを展開 書庫を展開します。2 番目の引数に展開したい書庫名、3 番目の引数に 解凍先のディレクトリを指定します。 ただし、解凍先のディレクトリが存在しない場合、DLL はディレクトリを 作ろうとせず、エラーとして終了してしまいます。 よって、ソフト側であらかじめ作っておいてください。 DLL 内部では、展開処理の前に、書庫ファイルの検査を行います。 ex. "e test.lzh \test\" → test.lzh という書庫を、\test フォルダ以下に展開 t: 書庫の完全性検査 書庫が正しく展開可能かどうかをチェックします。 lzh 書庫については ヘッダチェック、crc 比較などを行います。 zip 書庫については、ヘッダチェックのみ行います。 (それじゃあ完全性検査と言えないやんけ) ex. "t \test.lzh" → test.lzh の完全性検査をします。 l: 書庫の内容の一覧出力 書庫の中身の一覧を、出力バッファに出力します。 フォーマットは以下の通り。 CRC TYPE SIZE RATIO STAMP NAME -------- ---- -------- ------ ------------------- ---------------------- 00000000 STOR 0 ****** 2002-03-06 7:06:38 test/test2/ E3C740A7 DEFL 23444 32.5% 2002-03-03 9:21:12 test/test2/test2.txt 17F811C2 DEFL 12079 29.3% 2002-03-03 9:20:52 test/test.txt -------- ---- -------- ------ ------------------- ---------------------- Total 35523 3files unlha.dll と unzip.dll とでは、TYPE に入る語句が異なります。 LHA については、"lh0" "lh5" など、前後のハイフンを 省略した形で表示します。 ZIP については、 STOR - Store DEFL - Deflate SRNK - Shrunk RED1~4 - Reduce 1~4 IMPL - Implode を示しています。 q: サイレントモード このオプションを "a" や "e" などとあわせて指定すると、 圧縮/展開の際に、状況表示ダイアログを出さずに処理を実行します。 ex. "eq \test.lzh" → ダイアログを出さずに、test.lzh を展開します。 f: 強制上書き 解凍の際、ファイルを上書きしようとすると、それを確認するための ダイアログが表示されます( "q" オプションが指定されていても このダイアログは出ます)。選択肢は4つ。「はい」は上書き解凍、 「いいえ」は上書きせずに次のファイルの処理継続。「すべてはい」は その後のすべてのファイルを上書き解凍、「スキップ」は上書きせず、 その後の処理を一切せずに終了します。 このオプションを "e" とあわせて指定すると、このダイアログを出さず、 すべてが上書き解凍されます。 ex. "ef \test.lzh" → test.lzh を展開。既存のファイルは全て上書き。 o: 圧縮アルゴリズムの指定 (0|5|6|7) - Unlha (0 〜 9) - UnZip このオプションを "a" とあわせて指定すると、 圧縮の際の圧縮アルゴリズムを指定できます。 LHA: 指定できるのは 0(無圧縮), 5(-lh5-), 6(-lh6-), 7(-lh7-) です。省略すると、-lh7- で圧縮されます。 ZIP: 0 から 9 までを指定できます。0 は無圧縮。 1 は速度最優先・圧縮率最小、9 は圧縮率最優先・速度最遅 です。 省略すると、6 で圧縮されます。 ex. "ao5 test.lzh test.txt" → test.txt を -lh5- 形式で圧縮します。
WindowsCE には、カレントディレクトリの概念がないため、全ての パス指定を絶対ディレクトリで行うことになります。 そのため、圧縮/解凍のとき、基準ディレクトリという概念を使って、 相対パスの代替とします。 基準ディレクトリを指定するときは、かならず最後を \ にしてください。 そうしないと、ファイルが指定されているものと誤認識します。 たとえば、圧縮の場合、 a \Dir1\Dir2\test.lzh \Dir1\ \Dir1\Dir2\test.txt と、基準ディレクトリを指定( \Dir1\ )したとき、Dir2 と、Dir2 以下の 指定されたファイルが書庫に格納されます。 仮に、これを a \Dir1\Dir2\test.lzh \Dir1\Dir2\test.txt と、基準ディレクトリを指定しなかった場合、Dir1 から書庫に 格納されることになります。 解凍の場合は、 e "\Storage Card\test.lzh" \temp\ と指定すると、test.lzh が \temp 以下に解凍されます。 \temp\ が基準ディレクトリの指定にあたります。
上の文章は、
uema2
が書きました。あーつかれた。
ソースの著作権?んなもん知らんがな(やる気ないんかい)