ファイルをMoveする際、

ファイルがロック(他のプロセスでつかまれている)されているか

判断するベストプラクティスは?

 

[案]

1. File.MoveをTry~CatchしIOExceptionをCatchする?

2. なんらかの方法で事前チェックする?

 

なんらかの方法を調査する

1は手抜きかな^^;

フィードバック

# re: [要調査メモ]ファイルMove時にロック中なのかどうかを判断する方法

2007/07/10 11:10 by 中博俊
1しかありませんよ。
さらに失敗したら昇格してためして、それでもだめならだめ。

# re: [要調査メモ]ファイルMove時にロック中なのかどうかを判断する方法

2007/07/10 11:31 by とっちゃん
ファイルが実在する(元、先とも)とか、ReadOnly属性が付いているか程度なら
事前チェックできますけど、それ以上(部分的にロックされている、削除できないなど)は、1ですね。

ファイル操作は、原則 Try & Error です。

メモリアロケートもそうだけど(確保できなかったら...で考慮する)、ハード操作系はほとんどがこのパターンですよ。

# re: [要調査メモ]ファイルMove時にロック中なのかどうかを判断する方法

2007/07/10 11:32 by ちゃっぴ
> 1しかありませんよ。

です。
扱うのは、application 内部の private memory じゃ無いのですから他からちょっかい出される可能性があります。

つまり、check した後、ちょっかい出されたらどうなるかわかりますよね?

Application 内部の private memory にしたって、multi thread なら同様の問題が発生します。

# re: [要調査メモ]ファイルMove時にロック中なのかどうかを判断する方法

2007/07/11 1:18 by 十郎
>中様
ありがとうございます。
昇格して試してって部分はVistaならって事かな?
調べてみます。

>とっちゃん様
ありがとうございます。
ファイル操作(を含むハード操作系)は原則Try&Error
肝に銘じておきます。

>ちゃっぴ様
ありがとうございます。
確かに事前チェックできても、
その瞬間にどうか保障はできませんね。
コメントの入力
タイトル
 
名前
 
Url
コメント