2005-09-29

_ [C#] ImageView その3

ちまちまと進めているImageViewだが、平日は帰るのが遅いのでほとんど進まない。しかし今日は特定のZIPファイルが扱えないという現象の原因が分かった。話せば単純なことなのだが、ZIPファイル内に格納されているファイルのフルパス名に、「[〜]」が含まれていたのである。Unzip32ではファイル名に正規表現が使えるようになっており、今回は「[」が正規表現のデータだと判断されたのである。よって特定の文字をエスケープすれば正しく扱えるようになった。Unlha32ではファイル名にワイルドカードが使える程度で正規表現まではサポートしていない。よって同じように格納されたアーカイブファイルであってもLZHは正しく扱えたのである。

原因は分かったのだが、LZHを展開するときに同様にエスケープすると正しく処理されない。やはり展開に使うDLLごとに色々と処理を分けないといけないようだ。それを行うためにはアーカイブ展開クラスをかなり修正することになりそうだ。

[]