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

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

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

Re[7]: Directory::Deleteで謎な例外発生!!


(過去ログ 96 を表示中)

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

■57308 / inTopicNo.1)  Directory::Deleteで謎な例外発生!!
  
□投稿者/ なかやm (1回)-(2011/02/22(Tue) 14:34:32)

分類:[C++/CLI] 

Directory::CreateDirectory()とDirectory::Delete()を繰り返すとごくまれに"別プロセスで使用されているため、プロセスファイル"〜"にアクセスできません。"の例外が発生してしまいます。
発生頻度は100回に1回ぐらい??
ロジック上は問題ないです・・・・・
原因がわかりません。何か分かる人がいたら教えてください。
引用返信 編集キー/
■57310 / inTopicNo.2)  Re[1]: Directory::Deleteで謎な例外発生!!
□投稿者/ shu (463回)-(2011/02/22(Tue) 14:54:38)
No57308 (なかやm さん) に返信
> Directory::CreateDirectory()とDirectory::Delete()を繰り返すとごくまれに"別プロセスで使用されているため、プロセスファイル"〜"にアクセスできません。"の例外が発生してしまいます。
> 発生頻度は100回に1回ぐらい??
> ロジック上は問題ないです・・・・・
> 原因がわかりません。何か分かる人がいたら教えてください。
例外が100回に1回程度必ず発生しているのだから問題はあるのではないでしょうか?
引用返信 編集キー/
■57311 / inTopicNo.3)  Re[2]: Directory::Deleteで謎な例外発生!!
□投稿者/ なかやm (3回)-(2011/02/22(Tue) 15:04:58)
No57310 (shu さん) に返信
String^ dirt = "D:\\aaa\\bbb\\";
try{
for(int i=0;i<1000;i++){

Directory::CreateDirectory( dirt );
Directory::CreateDirectory( dirt + "aa" );
Directory::CreateDirectory( dirt + "bb" );
Directory::CreateDirectory( dirt + "cc" );
Directory::CreateDirectory( dirt + "dd" );
Directory::CreateDirectory( dirt + "ee" );
Directory::CreateDirectory( dirt + "ff" );
Directory::CreateDirectory( dirt + "gg" );
Directory::CreateDirectory( dirt + "hh" );
Directory::Delete( dirt, true );
}
}catch( Exception^ e ){
result = false;
}
Directory::Deleteで発生してしまいます。
引用返信 編集キー/
■57312 / inTopicNo.4)  Re[3]: Directory::Deleteで謎な例外発生!!
□投稿者/ shu (464回)-(2011/02/22(Tue) 15:33:15)
No57311 (なかやm さん) に返信

これだけで発生するとなると確かに不思議ですね。

変わるか分かりませんがDirectoryInfoを使うとどうでしょう?

引用返信 編集キー/
■57313 / inTopicNo.5)  Re[4]: Directory::Deleteで謎な例外発生!!
□投稿者/ 774RR (573回)-(2011/02/22(Tue) 15:52:12)
# ディレクトリだけで該当するかどうかはわからないけど
> 別プロセスで使用されているため
ウイルス対策ソフトがリアルタイム検索のために開いているとか、そういうことはありそう。
ウイルス対策系ソフトを一時的に停止にしてテストして味噌。
# Windows Defender とか Virus Buster とか Norton とかとかとか
引用返信 編集キー/
■57314 / inTopicNo.6)  Re[5]: Directory::Deleteで謎な例外発生!!
□投稿者/ todo (121回)-(2011/02/22(Tue) 15:55:13)
エラー通り、別プロセスがフォルダを瞬間的に握ってしまっているのでは?
例えば、アンチウイルスソフトとか。
Process Monitorで別プロセスを特定できるかも。

Process Monitor
http://technet.microsoft.com/ja-jp/sysinternals/bb896645
引用返信 編集キー/
■57318 / inTopicNo.7)  Re[6]: Directory::Deleteで謎な例外発生!!
□投稿者/ なかやm (4回)-(2011/02/22(Tue) 17:38:35)
No57314 (todo さん) に返信
> エラー通り、別プロセスがフォルダを瞬間的に握ってしまっているのでは?
> 例えば、アンチウイルスソフトとか。
> Process Monitorで別プロセスを特定できるかも。
>
> Process Monitor
> http://technet.microsoft.com/ja-jp/sysinternals/bb896645

Process Monitorで監視したところアンチウイルスソフトが原因でした。ありがとうございました。

解決済み
引用返信 編集キー/
■57319 / inTopicNo.8)  Re[7]: Directory::Deleteで謎な例外発生!!
□投稿者/ shu (465回)-(2011/02/22(Tue) 17:44:38)
No57318 (なかやm さん) に返信
> ■No57314 (todo さん) に返信
>>エラー通り、別プロセスがフォルダを瞬間的に握ってしまっているのでは?
>>例えば、アンチウイルスソフトとか。
>>Process Monitorで別プロセスを特定できるかも。
>>
>>Process Monitor
>>http://technet.microsoft.com/ja-jp/sysinternals/bb896645
>
> Process Monitorで監視したところアンチウイルスソフトが原因でした。ありがとうございました。
>
アンチウィルスソフトでロックがかかるのは問題ありだとおもうので、処理待ちするか、リトライするかが
必要な気がします。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -