16 7月

reces Ver.0.00r29b公開

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

〇Ver.0.00r29b

  • 「/c」での新規ディレクトリ作成時に末尾の’ ‘と’.’を削除するように。(Special Thanks!:kiyohiro様)
  • 7-zip32.dll/UnIso32.dllで出力先ディレクトリに2つ以上のスペースが含まれると1つに削られてしまう問題に対応。(Special Thanks!:kiyohiro様)
  • 7-zip32.dllを使用する形式で「/mC」するとディレクトリ構造を無視した内容と構造を維持した内容が重複して圧縮される不具合を修正。

「/mC」で誤った書庫が作成される不具合はなんとr13から存在していました…

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

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秒以上の間隔で来ることはない!…と思う。

広告