CodePanic! 雑談掲示板
インデックスが範囲を超えています - noby
2017/02/10 (Fri) 03:06:11
お世話になります。初めての利用です。ありがとうございます。
Windows7、64ビット版を使わせていただきました。
バックアップソフトによる世代管理された重複フィルダが溜まってしまったので、削除しようとしています。
外付けHDDのフォルダの一つを選択し検索させましたが、ハッシュ一致チェックの途中で画像のエラーになります。
1.はじめに一度、同じフォルダを検索しています。
2.重複削除のやり方がわからなかったので、一旦停止しました。どこで停止したのかわかりません。
3.FileManyを再起動し、再度同じ検索をさせたところ、「自動、クリアー、削除」などのボタンが現れたため、これによって7万ファイルほどゴミ箱に捨てることができました。
4.途中で止めたので続きがあると思って、再度検索をしたところ、画像のエラーが出ました。再現性あり、エラーメッセージを二回確認し、現在3回目のハッシュ一致チェックをしているところです。
Re: インデックスが範囲を超えています - noby
2017/02/10 (Fri) 03:08:46
削除対象が世代管理フォルダなので、重複しているファイル名はわかるのですが、削除するべきファイル名がついているファイルを検索して、検索結果を見て一括削除することはできるのでしょうか?
「Tips→設定:指定ファイル削除」の使い方がイマイチわかりません。説明を読んだだけでまだ試していないのですが。
Re: インデックスが範囲を超えています - noby
2017/02/10 (Fri) 03:12:23
3回目のエラーメッセージが出ました。ただよく見てみると、エラーメッセージの裏でまだハッシュ一致チェックが正常に動いているようです。
このまま放置して、「自動、クリアー、削除」などのボタンが現れるかどうか、待ってみます。
Re: インデックスが範囲を超えています - 管理人
2017/02/10 (Fri) 09:52:02
ご報告ありがとうございます。
まず確認ですがFileManyのバージョンは
最新のv2.1.6.3でしょうか?
削除操作の後の再検索が再現のヒントかもしれません。
エラーメッセージはUI側で
検索処理そのものはDLL側で行っているので
そちらは処理が続行されているようです。
ハッシュ比較中に何かがトリガーになって
UI側の処理が呼び出されますが
検索中はUI側のリストが全クリアーされているので
添付画像のようなエラーメッセージが表示されている
ような流れかもしれません。
削除操作と検索を繰り返すテストを実施してみます。
また何かわかりましたらこちらでご報告します。
Re: インデックスが範囲を超えています - noby
2017/02/10 (Fri) 10:59:38
お世話になります。バージョンは2.1.6.3bです。
エラーメッセージを放置してもハッシュ一致チェックは動いていましたので、終わるまで続けてみたところ、
「自動、クリアー、削除」などのボタンが現れました。
エラーメッセージが表示された状態で「自動、クリアー、削除」などのボタンを押すことができました。
エラーメッセージにOKすると、FileManyは終了してしまいます。
なんらかのエラーがある場合に作業が続行できない仕様かと思いますが、
メッセージを放置して検出されたファイルを見る限りでは、作業は正常に終了しているようです。
このまま削除を実行しました。現在593522ファイルを削除中です。画像
最初の作業と合わせて67万ほど削除できるようです。
操作感のことになりますが、削除ボタンを押すと同時に検出されたファイル一覧が消えてしまうので、
残すべきファイルも削除されたかのように錯覚しました。
また、実際の削除は少し間を置いて始まる(バーグラフが増え始める)ので、
ファイル一覧が消えたことで削除が終わっているかのように錯覚しました。
削除ボタンを押したあと「削除を実行中。このまましばらくお待ちください」
等のメッセージが間に挟まると良いかと思いました。
待たなくても良い、ということでしょうか? FileManyを終了させてもよいのでしょうか?
現在まだエラーメッセージが表示されているので、これにOKすると、
削除実行中のFileManyが終了してしまうと思います。
>そちらは処理が続行されている
そういうことだったかもしれませんね。
>また何かわかりましたらこちらでご報告します。
ありがとうございます。よろしくお願いいたします。
Re: インデックスが範囲を超えています - 管理人
2017/02/10 (Fri) 19:38:10
ご報告ありがとうございます。
>エラーメッセージが表示された状態で「自動、クリアー、削除」などのボタンを押すことができました。
とあることから
UIスレッドではないところでクラッシュしている可能性が高いと思います。
DLL側でのクラッシュであれば即落ちでしょうし
もしかするとですが
検索中のProgress表示をしているタイマー処理の中で落ちているかもしれません。
これが原因であればUIスレッドとは別ですし。
しかしWinFormsのTimerコントロールは
中の処理がUIスレッドに合流すると記憶していますので
Invokeなど不要だと思うのですが
いずれにしても進捗表示処理に問題があると思います。
もう少し調べてみます。
Re: インデックスが範囲を超えています - 管理人
2017/02/10 (Fri) 23:07:53
v2.1.6.5をリリースしました。
こちらで改善されるといいんですが。
Re: インデックスが範囲を超えています - noby
2017/02/11 (Sat) 20:38:42
v2.1.6.5、ありがとうございます。
削除作業が完了してしまったので、同じ状況でテストできませんが、また利用させていただきます。