きっかけは添付ファイルが展開できなかったこと。
for〜in〜doステートメントで独自に処理を行いwinrarで
複数エントリマーク対応させる処理を追加していたのだが
なぜか「書庫が見つかりません」エラーとなる。
shift+Enterで関連づけを用いwinrar(GUI)を起動すれば
展開できるのだがちょっと気になった。
暇を見て調べてみると・・・
結論から言うとファイル名に%が含まれていたことが原因。
たとえば
波動砲 エネルギー充填120%時におけるリスク回避について.zip
みたいなやつが展開できない。
for〜in〜doステートメントを使っているため%はエスケープシーケンス
で置き換えなければならないためだった。
%ってファイル名に使えるとは使おうと思ったことがないので知らなかった。orz
レアケースなので自分的には問題の重要度が低いのだがせっかくの
機会なので圧縮ファイルの展開処理を全面的に書き換えることに。
幸いPPxにはScript Moduleがある。
java scriptに置き換え。
%をエスケープシーケンスに置き換えるのはreplaceメソッドで
単純な正規表現を用いるだけ。
iFile = iFile.replace(/%/g,'%%');
他にtoLowerCaseメソッドを使い拡張子判定をswitchで行い
各種圧縮ファイルに対応できるようにした。
switch (iExt.toLowerCase()){
case '拡張子1':
// 拡張子1の処理
break;
case '拡張子2':
// 拡張子2の処理
break;
:
:
:
default:
// 上で拾えなかった拡張子の処理
break;
}