2 7月

reces Ver.0.00r28公開

コマンドプロンプト上で「再圧縮」「圧縮」「解凍」「内容一覧表示」「書庫検査」「書庫内ファイル削除」を行うreces Ver.0.00r28を公開しました。

〇Ver.0.00r28

  • rar書庫でディレクトリ階層を無視した解凍が出来なかった不具合を修正。
  • rar書庫の解凍でダイアログが表示されていた不具合を修正。
  • プログレスバーの更新が止まる場合がある不具合を修正。
  • 書庫の構造によってはフィルタ処理で関係のないディレクトリが除外される不具合を修正。(Special Thanks!:kiyohiro様)
  • 統合アーカイバライブラリについて/mtでライブラリが指定されなければ、CheckArchive()で決定するように。(Special Thanks!:kiyohiro様)
  • 既存ファイルがあれば圧縮前に予め削除する「/NF」オプションを実装。(Special Thanks!:kiyohiro様)
  • unrar32.dll/unrar64j.dllの同梱を中止。
  • 7-zip32.dll/7-zip64.dll文字化け対策版 Ver.15.05.00.02 betaに更新。
  • Code::Blocks用プロジェクトファイルの同梱を中止。

 

7-zip32.dll/7-zip64.dllをVer.15.05.00.02 betaに更新しました。

また、統合アーカイバプロジェクトでunrar32.dll Ver.0.17が公開されたため、今バージョンよりunrar32.dll/unrar64j.dllを同梱していません。

誤った拡張子を持つ書庫の再圧縮に対応するため、既存ファイルがあれば圧縮前に予め削除する「/NF」オプションを実装しました。

例:
作成したい書庫: arc.zip[zip形式]
同名の書庫    : arc.zip[lzh形式]
>reces /mrzip /N /X*.db arc.zip

削除された書庫は復元することが出来ませんので、ふつうは「/N」をお使い下さいませ。

 

reces000r28ss

29 6月

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.05.00.02 beta公開

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.05.00.02 betaを公開しました。

●開発履歴
○Ver.15.05.00.02 beta – 2015/06/29
・リスト表示で日本語が文字化けする不具合を修正。(Special Thanks!:kiyohiro様)
・ファイル名がUTF-8で格納されている場合でも末尾の’/’からディレクトリ判定を行うように。(Special Thanks!:kiyohiro様)

リスト表示(recesでは/mL)で日本語が文字化けする不具合を修正しました。

また、ファイル名がUTF-8で格納されている書庫についても、末尾の’/’の有無でディレクトリ判定を行う様にしました。

7-Zipではファイル名末尾の’/’有無->属性の順でディレクトリ判定が行われますが、

末尾’/’の確認がUTF-8に対応していないため、UTF-8で格納かつ属性が保存されていない書庫ではディレクトリがファイル扱いで作成され、正しく解凍出来ませんでした。

そこで、UTF-8に対応するよう、以下のように修正しました。

  LPCSTR prev =
  #if defined(_WIN32) && !defined(UNDER_CE)
    CharPrevExA((WORD)codePage, name, &name[name.Len()], 0);
    /* 追加ここから */
    if (*prev != '/')
    {
      prev = &name[name.Len()];
      --prev;
      while ((*prev & 0xc0) == 0x80)
        --prev;
    }
    /* 追加ここまで */
  #else
    (LPCSTR)(name) + (name.Len() - 1);
  #endif
23 6月

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.05.00.01 beta公開

7-zip32.dll/7-zip64.dll/7z.dll文字化け対策版 Ver.15.05.00.01 betaを公開しました。

●開発履歴
○Ver.15.05.00.01 beta – 2015/06/23
・7-Zip 15.05 betaをベースにビルド。

7-Zipは15.05 beta、7-zip32.dllはVer.9.22.00.01をベースにしています。
辛うじてビルド出来るように修正したのみで、何が起こるかわかりません。
不安な方は、オリジナルの7-zip32.dll/7-zip64.dllが公開されるまでお待ちくださいませ。

#「Scanning~」のメッセージを削除しています。
#7-Zipのプログレスバー表示も削除しています。
#recesでログに従来と同じくファイル名を表示するには「/P-bb1」とします。

5 6月

reces Ver.0.00r28b公開

reces Ver.0.00r28bを公開しました。

〇Ver.0.00r28b

  • 書庫の構造によってはフィルタ処理で関係のないディレクトリが除外される不具合を修正。(Special Thanks!:kiyohiro様)

Ver.0.00r26から、フィルタ適用の結果、空となるディレクトリは極力排除する方針となっています。

今回の不具合は、配下に処理対象となるディレクトリ・ファイルがあるにもかかわらず、排除してしまうために因るものでした。

 

 

例えば、以下の構成の書庫ファイルに対し、「/X*.pdf」とした場合について。

1
│  テスト.pdf

└─2
テスト.jpg

 

フィルタ適用は

1\
1\2\
1\2\テスト.jpg
1\テスト.pdf

の順に行われます。

まず、「1\テスト.pdf」が除外されます。

次に、空ディレクトリチェックが行われます。

しかし、ここに不具合があり、「1\2\テスト.jpg」が存在するにも関わらず、誤って「1\」に子ノードが無いと判断、

結果、除外リストは

1\
1\テスト.pdf

となり、処理対象が無い状態となってしまいました。

 

これは自分では気付けない不具合でした。

報告して下さったkiyohiro様に感謝致しますm(_ _)m

25 5月

reces Ver.0.00r28a公開

reces Ver.0.00r28aを公開しました。

〇Ver.0.00r28a

  • rar書庫でディレクトリ階層を無視した解凍が出来なかった不具合を修正。
  • rar書庫の解凍でダイアログが表示されていた不具合を修正。
  • プログレスバーの更新が止まる場合がある不具合を修正。

rar書庫でディレクトリ階層を無視した解凍が出来ない不具合、なんとVer.0.00r12から存在していました^q^

原因は”-e“とすべきところを、”-x -e“としていたため、「不正なセキュリティレベルです」とエラーが発生し、解凍出来ませんでした。

プログレスバーの更新が止まる問題について。

更新頻度を下げるため、コールバック関数内で以下のような処理をしていました。

SYSTEMTIME st={};
::GetSystemTime(&st);
callback::now=st.wSecond*1000+st.wMilliseconds;
if(callback::now-callback::last_update>100){
    callback::last_update=callback::now;
    //プログレスバー更新処理

しかし、例えばcallback::last_updateが59918になってしまうと、プログレスバーの更新はどれだけ経とうと行われません。

Ver.0.00r28aでは以下のように修正しました。

SYSTEMTIME st={};
::GetSystemTime(&st);
callback::now=st.wSecond*1000+st.wMilliseconds;
long diff=(callback::now>callback::last_updade)?
    callback::now-callback::last_updade:
    60000-callback::last_updade+callback::now;

if(diff>100){
    callback::last_updade=callback::now;
    //プログレスバー更新処理

 

 

#よくよく考えると、wSecondは要らない子。

#通知が1秒以上の間隔で来ることはない!…と思う。

広告