C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: ファイルが別のプロセスから使われているか調べたい


(過去ログ 14 を表示中)

[トピック内 4 記事 (1 - 4 表示)]  << 0 >>

■4689 / inTopicNo.1)  ファイルが別のプロセスから使われているか調べたい
  
□投稿者/ 春紫苑 (1回)-(2007/06/22(Fri) 14:15:22)

分類:[C# (Windows)] 

ご教授よろしくお願いいたします。

フォルダ直下のファイルを、使用中のもの以外すべて削除するプログラムを作成しているのですが、ファイルが使用中かどうか判断する良い方法が見つからず困っています。

IOException をキャッチし続けるのは効率が悪いので、削除するまえに使用中か判断したいのですが…。

お願いします。
引用返信 編集キー/
■4690 / inTopicNo.2)  Re[1]: ファイルが別のプロセスから使われているか調べたい
□投稿者/ 渋木宏明(ひどり) (240回)-(2007/06/22(Fri) 14:46:25)
渋木宏明(ひどり) さんの Web サイト
> IOException をキャッチし続けるのは効率が悪いので、削除するまえに使用中か判断したいのですが…。

事前チェックにはあまり意味が無いと思います。

特に多量にファイルが存在する場合、事前チェックでは未使用だったファイルが、いざ削除しようとしたら使用されているかもしれません。

また、あるいは逆に、事前チェックでは使用中だったファイルが、他のファイルを削除しているうちに解放されるかもしれません。

例外の重さが気になるなら、ファイル削除のところだけ P/INVOKE で API を呼び出してみるとか。


引用返信 編集キー/
■4693 / inTopicNo.3)  Re[1]: ファイルが別のプロセスから使われているか調べたい
□投稿者/ NyaRuRu (2回)-(2007/06/22(Fri) 16:08:48)
No4689 (春紫苑 さん) に返信
> IOException をキャッチし続けるのは効率が悪いので、削除するまえに使用中か判断したいのですが…。

Vista 以降であれば標準 API で検出可能ですが,それ以前の場合は OS 内部の情報を使用しなければむずかしようです.
http://msdn.microsoft.com/msdnmag/issues/07/04/NETMatters/default.aspx?loc=jp
http://d.hatena.ne.jp/NyaRuRu/20070426/p1
引用返信 編集キー/
■4757 / inTopicNo.4)  Re[2]: ファイルが別のプロセスから使われているか調べたい
□投稿者/ 春紫苑 (2回)-(2007/06/25(Mon) 08:45:58)
渋木宏明(ひどり)さん、NyaRuRuさん、ありがとうございます。
返信が遅れてすみません。

ファイルが使用されているかどうか、事前にチェックするのは難しいみたいですね。
IOException を捕まえる方法をとることにしました。
できる限り、.NET Framework で提供されているクラスで済ませたいので。

ありがとうございました。

解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -