Visual Basic 中学校 掲示板 投稿の管理
タグのない投稿を抽出
統計
RSS
Visual Basic 中学校
投稿一覧
ファイルが使用中かどうかを取得したいです。
この投稿へのリンク
https://keijiban.umayadia.com/ThreadDetail.aspx?ThreadId=30283#CommentId83034
この投稿の削除
削除パスワード
削除する
コメント本文
投稿者
みどりこぶた
 (高校生)
投稿日時
2017/9/6 16:54:19
すみません、非常に不十分な質問文でした、少し補足します。
ファイルが使用中かどうか、というより、
ファイルの排他的なオープンを試行した結果、成功・ロック取得の失敗・それ以外の原因による失敗、で切り分けたいです。
最初は、 事前に IO.File.Exists で存在するかどうかなどチェックを入れていたのですが、
よく考えると、事前チェックでは意味が無いことに気づき、
更に良く考えると、そもそもオープンに失敗したとき、ファイルが存在さえすれば、ロック取得に失敗したとみなせるのか、と気づき…
上記のようなコードになりました。
指摘感謝します、もう一度調べなおしてみました。
みましたが、
・例外を catch したらファイル使用中とみなす
・APIを使う
しか見つけられませんでした…。
APIの方は「IsFileAlreadyOpen」などを使うのでしょうか…?
ロック取得の失敗(共有違反エラー?)は区別できたのですが、「Err.LastDllError」で取得する値は他のスレッドやプロセスと共有なのでしょうか…。
もとはと言えば、別々のプロセス間でちょっとした同期をとりたくなり、それにファイルを使用しています。
他に簡単な方法があればいいのですが、C++ などは書いたことなくて自身がなくて…、vb.net の範囲でもできる方法ありますでしょうか…?
もう少しヒント与えていただけましたら幸いですm(_ _)m