Quantcast
Channel: C#タグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 9749

[C#]フォルダが削除できないときの雑な対策

$
0
0
発生条件 一瞬の間にフォルダ作成とフォルダ削除を行おうとすると下記例外が発生した。 System.IO.IOException : The process cannot access the file 'ccc0.txt' because it is being used by another process. 解決方法 非同期でかつ遅延させて実行するとうまく行った。 Task.Run(async () => { await Task.Delay(500); // 500ms遅延 Directory.Delete("aaa", true); // フォルダ削除 }); ※遅延の秒数は適当。短いと失敗しやすい傾向にあったので、500[ms]に落ち着いた。 背景 xUnitでファイルをいじるロジックのテストを書く場面があり、テスト用ファイルの生成/削除をコンストラクタとDispose()で行おうと思い立った。 とりあえずその部分の動作だけ確かめようとしたところ、冒頭の例外発生。 他のプロセスに使われているというメッセージだがそんなわけがない。多分、生成してすぐだから自分のプロセスのことなんだろう。 テストケース内にいくらか時間がかかる処理が書かれれば起きなくなるトラブルなんだろうけど、ググってもいまいちぴったりな質問などなかったので備忘録。

Viewing all articles
Browse latest Browse all 9749

Trending Articles