unlzh.js -- Javascript版LZHアーカイブ展開クラス
はじめに
JavascriptでLZHファイルの操作をしたくて調べた結果、Javascriptに移植、クラス化しました。改変内容をこのページに記載します。
ダウンロード
- unlzh.js
-
Javascript版LZHアーカイブ展開クラス
本体です。 - clsMemImg.js
-
unlzh.js内で使用している自作の
DataViewラッパークラスとバイトストリームクラスです。このファイル自体はunlzh.jsのライセンスには含まれません。 クラスの内容は非常に単純であるため、必要に応じて置き換え可能です。 - LICENSE.txt
-
移植元のオリジナルのunlha.pyライセンスです。
本ページおよびunlzh.jsはこの条件に従って配布されています。 - unlha_py.zip
-
移植元のオリジナルのunlha.pyファイル一式(zipファイル)です。
このzipファイルは unlha.pyライセンス 2. a.
に従い、ダウンロード可能にしています。
使用方法
Unlzhクラス
コンストラクタ
Unlzh(buf)
引数
- buf
-
LZHファイルの内容が入った
Uint8Array型のデータを指定する。
メソッド
Unlzh.List(func):書庫内ファイル一覧
引数
- func(header)
-
書庫内のファイル毎に呼び出される関数を指定する。引数に
UnlzhHeaderクラスが渡される。この関数の戻り値をTrueにすると次のファイルの一覧を取得し、 Falseにすると一覧の取得を終了します。
戻り値
True
例外
UnlzhExceptionが発生する。
Unlzh.Extract(filename):書庫内ファイルの展開
引数
- filename
-
展開したい書庫内のファイルをフルパス名で指定する。
戻り値
Uint8Array型-
展開したファイルのバイナリーデータ。
- null
-
指定されたフルパス名がディレクトリの場合、または書庫内に存在しないとき。
例外
UnlzhExceptionが発生する。
UnlzhHeaderクラス
プロパティ
- path
-
パス名
- name
-
ファイル名
- full_path
-
フルパス名
- original_size
-
ファイルサイズ
- last_modified_stamp
-
更新日付
- packed_size
-
圧縮サイズ
- method
-
圧縮方式
- crc
-
ファイルCRC
UnlzhExceptionクラス
プロパティ
- Errno
-
エラー番号
- message
-
エラーメッセージ
ライセンス
本クラスは、unlha.py -- Python 版 LZH アーカイブ展開ツールをJavascriptに移植して作成したものです。
なお、unlzh.js内で使用しているclsMemImg.jsは本ライセンスには含まれません。
免責および商用利用について
本クラスは無保証で提供されます。本クラスの使用または存在によって生じた損害について、作者は一切の責任を負いません。unlha.pyライセンス 7.
に定める条件
Special Thanks
本クラスは移植元のunlha.py -- Python 版 LZH アーカイブ展開ツールだけでなく、
LHarc for UNIX V 1.02 Copyright(C) 1989 Y.Tagawa
LHx for MSDOS V C2.01 Copyright(C) 1990 H.Yoshizaki
LHx(arc) for OSK V 2.01 Modified 1990 Momozou
LHa for UNIX V 1.00 Copyright(C) 1992 Masaru Oki
LHa for UNIX V 1.14 Modified 1995 Nobutaka Watazaki
LHa for UNIX V 1.14i Modified 2000 Tsugio Okamoto
LHA-PMA for UNIX V 2 PMA added 2000 Maarten ter Huurne
Autoconfiscated 2001-2008 Koji Arai
Simple LZH archive extractor Python version
Copyright(c) 2024 Yuichi Nakamura
全てのLZHに感謝を。
更新履歴
| バージョン | 更新日付 | 内容 |
|---|---|---|
| 1.0.0.0 | 2025/11/03 |
|
Copyright (c) 2024 Yuichi Nakamura (unlha.py) Copyright (c) 2025 myna (unlzh.js port) This software is distributed under the same license terms as unlha.py.