2008年12月20日 土曜日 16:38:10

[MDIEスクリプト] select2zip.jsを更新

MDIE,javascript,プログラム [ by Mizugame ]

MDIE-select2zip.js
公開せずに放置してたんですが、一段落したとして最新版のselect2zip.jsを公開しておきます。

一度、書き直したのでスクリプト自体は別物になってますが(・∀・)
少し機能が増えました。

というか、1年近くたっちゃってるね・・・。

以下、使い方とか説明です。

使い方

基本的に使い方自体はいっしょだけど、とりあえず。
ソースコードはソースコードから。

  1. select2zip.zip」をクリックしてダウンロード。
  2. ダウンロードしたZIPファイルを解凍。
  3. 解凍してできた「select2zip.v076.js」をMDIEのインストールフォルダにあるscriptフォルダ内に移動(任意のフォルダでもいい)
  4. MDIEを起動してメニューの「ツール」 > 「拡張」 > 「スクリプトに追加」で「select2zip.v076.js」を追加
  5. MDIEのメニューの「ツール」にある「キーボードショートカット」や「マウスジェスチャ」に任意で登録

設定について

解凍した「select2zip.v076.js」をテキストエディタ等で直接編集します。
コメント入れているので大丈夫だと思うけど、ちょっと補足。

まずは環境設定。

  1. select2zip.v076.jsをテキストエディタで開いて、21行目以降を確認。
    /*
     * システム設定(7-zipの位置とか、ログファイルの場所を指定)
     * $system.exe        : 7zipプログラムのパス
     * $system.logfile    : ログファイルのパス(設定しない場合は、実行したディレクトリ内に自動作成)
     * $system.zipMode    : 圧縮タイプ(デフォルトはzip)
     * $system.skipExt    : 圧縮しないファイル拡張子($option.skipZipがtrueの場合のみ有効)
     */
    $system.exe     = '';
    $system.logfile = '';
    $system.zipMode = 'zip';
    $system.skipExt = ['lzh','zip','cab','rar','7z','gz','bz2','tar'];
    
  2. $system.exeだけは「7zipのパス」を確実に記述。
    ※ここさえ間違ってなければ、とりあえず動くはず。
  3. ログファイルを固定ファイルにしたい場合は「$system.logfile」に任意のパスを記述。
  4. 圧縮ファイルの種類を変更する場合は、$system.zipModeのzipを変更。
    サポートしている圧縮タイプは「zip」、「7z」、「tar」、「gzip」、「bzip」で任意のファイルタイプを記述すればいい。
    ※「gzip」、「bzip」は単体ファイルの圧縮しかサポートしてないので、非推奨。
  5. $system.skipExtで圧縮したくないファイルの拡張子を記述。
    ※Array形式での記述(['拡張子1', '拡張子2'])

次にオプション設定。
(オプションは「true」か「false」のみで記述)

  1. select2zip.v076.jsをテキストエディタで開いて、33行目以降を確認。
    /*
     * オプション設定(圧縮対象の設定とか、ログを残すかとか)
     * $option.pressDir   : 選択したフォルダを圧縮するか(圧縮する:true, 圧縮しない:false)
     * $option.pressFile  : 選択したファイルを圧縮するか(圧縮する:true, 圧縮しない:false)
     * $option.saveLog    : 実行ログを記録するか(記録する:true, 記録しない:false)
     * $option.skipZip    : 選択ファイルがZIPの場合、重複圧縮を回避するか(回避する:true, 回避しない:false)
     * $option.removeExt  : ファイル圧縮時に拡張子を外すか(外す:true, 残す:false)
     * $option.keepAction : ユーザによる圧縮中断後、残りの圧縮を継続するか(継続する:true, 継続しない:false)
     * $option.finish     : 終了時のアラート(アラートする:true, アラートしない:false)
     */
    $option.pressDir   = true;
    $option.pressFile  = true;
    $option.saveLog    = true;
    $option.skipZip    = true;
    $option.removeExt  = true;
    $option.keepAction = false;
    $option.finish     = false;
    
  2. $option.pressDirで選択中フォルダの圧縮の可否を決定。
    ※フォルダの圧縮を無視したい場合、これをfalseにする。
  3. $option.pressFileで選択中ファイルの圧縮の可否を決定。
    ※ファイルの圧縮を無視したい場合、これをfalseにする。
  4. ユーザが指定した拡張子をもつファイルの場合に、圧縮を無視するのであれば$option.skipZipをtrueにする。
    ※圧縮ファイルの重複圧縮を回避するために作ったけど、圧縮ファイル以外の拡張子も指定できます。
  5. ファイルの圧縮時のファイル名に、元の拡張子を取り外して、圧縮タイプの拡張子を付ける場合は、$option.removeExtをtrueにする。
  6. タスクバーに表示されるコマンドプロンプトが、ユーザによって閉じられた場合に、残りのファイルの圧縮を引き続き行う場合に$option.keepActionをtrueにする。
  7. select2zipの処理終了を通知したい場合に$option.finishをtrueにする。

そんな感じ。

基本的に初期値が割り振られるようにしているので、$system.exe以外は削除しても動きます。
※Vistaの場合で、プログラムフォルダに7zipをインストールした場合は、$system.exeも削除しても動くはず。
※XPはシステム変数の展開の都合で、うまく動かないっぽい。

前回からの変更点

放置期間が長かったので、スクリプトとしては別物かも。

  • 処理終了までに、MDIEで選択ファイルを変更すると圧縮するファイルリストまで変わってしまうバグを修正。
    ※とはいっても、前もってリストを確保してるだけなので、ファイルが多い場合にすぐ選択を解除したりなんかするとダメだと思う。
  • 圧縮の種類をzipのみから、7z、tarにも変更できるように変更。
    ※gzipやbzipもできるようにはしてるけど、1ファイル専用
  • 選択ファイルに圧縮ファイルが含まれる場合、重複圧縮を回避できるように設定追加。
    ※ただし、拡張子のみによる判別)
  • 圧縮対象がファイルの場合、拡張子を取り外していたのを、設定により動作を変更できるようにした。
  • ログで書き出す内容が7zのすべてのexit codeに対応。(たぶん)
  • 設定周りの変数名をいろいろ変更。
  • ログのテキスト情報をいろいろ変更。
  • ソースコードが膨張したり、キレイになったり、汚くなったり。
  • コードの切り分けがいま一つだけど、オブジェクトベースにしたので、(自分的に)多少変更が加えやすくなった。

前回がバージョンもついてない状態で、いきなり中途半端なバージョンになってるけど・・・。
とりあえず、やりたかったことは一通り実装した感じ。

・・・ソースがいま一つ整理できてないけど(>_<)

関連記事:
[clipFolder.js] MDIEでクリップボードからサクッとフォルダを作成
7-zipで選択中のファイル(またはフォルダ)を圧縮するMDIE用スクリプト「select2zip.js」
選択フォルダの階層構造をテキストファイルに出力するMDIE用スクリプト

コメント (0) »