- PR -

C#でのファイルのロック状態の取得方法

1
投稿者投稿内容
TAKA
会議室デビュー日: 2008/07/23
投稿数: 2
投稿日時: 2008-07-23 14:30
初めてお邪魔します。

C#で、別アプリで常時生成・コピーされているファイルに対し、
生成・コピーの完了を以ってそのファイルに対しての読込・削除を行いたいのですが、
生成・コピーが完了し、ロックがはずれた状態かを確認する方法はありませんでしょうか?
現在の作成している処理だと、生成途中にファイル操作を行ってしまい、望んだ結果が得られません。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2008-07-23 15:49
さかもとと申します。

http://www.atmarkit.co.jp/fdotnet/dotnettips/284watchopen/watchopen.html


こちらでしょうか。
_________________
------------------------------------------
拝啓、さかもとと申します♪
ちゃっぴ
ぬし
会議室デビュー日: 2004/12/10
投稿数: 873
投稿日時: 2008-07-23 15:59
File 操作では常に失敗することを想定し、失敗した場合どうするか?を常に仕様に盛り込む必要があります。

代表的なのは一定期間待ち合わせ retry するとか。

詳しい状況がわかりませんが、読み込み後削除する前提なら最初から更新 lock を取得して file を読み取ることである程度緩和は可能ですね。

確実性を持たせるなら、Windows Vista 以降となってしまいますが TxF を利用するという方法も。
Windows の API はそもそも file 操作を伴う連携は不向きだったりするので、利用しないよう仕様をかためるのが一番なんですがね。
TAKA
会議室デビュー日: 2008/07/23
投稿数: 2
投稿日時: 2008-07-23 16:33
お二方回答ありがとうございます。

お蔭様でなんとかなりそうです。

TxFについては動作予定のOSが2000なので残念ですが出来そうには無いですが、
vistaに対応する機会があればやってみようかと。
1

スキルアップ/キャリアアップ(JOB@IT)