スポンサーサイト

--/--/-- --:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

C# ファイルが別プロセスで使用中かチェックする

2010/10/20 10:48
誰かが既に開いてるファイルをアップロードしようとする時、
別プロセスで開いているので開けませんよ、というエラーを出す処理。

以下サンプルコード

*********************************************

try{
FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read, FileShare.Read);

fpSpread.OpenExcel(fs);

fs.Close();

}catch(Exception ex){

String errMsg = "ファイルが別のプロセスで使用中のため、オープンできません。";

}

*********************************************


別プロセスで開いてても問答無用で開きたい、って場合には
FileShareをReadWriteにしてやれば無理やり開ける。
けどこの場合保存が競合したときとかはちょっと挙動が謎になるなあ。

fsはきちんとCloseしておかないと、あとでファイルをDeleteしようとした時に
プロセスが掴んでて落ちる。

ちなみにこの方法だと、他の理由でエラーがででも全て別プロセスのせいになってしまうので
きちんとログを吐き出すようにしといたほうがいいかも。


FC2 Management



Comment Post

Name:
Subject:
Mail:
URL:

Pass:
Secret:管理者にだけ表示を許可する

Trackback

Trackback URL:
 Home 
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。