- ベストアンサー
VB.NET ファイルへのアクセス許可の判定
Framework2.0で開発しています。 今の所、ファイルへのアクセス許可を判定する際に、クラス「System.IO.FileInfo」のメソッド「OpenRead」を実行し、エラーなるかならないかで、ファイルへアクセスできないできるを判断しています。 メソッド「OpenRead」実行時にファイルへロックを掛けてしまい、その後プログラムのプロセスが終了するまで、ファイルのロックが解除されなくて困っています。 ファイルをロックせずに、ファイルへのアクセス許可を判定する方法を教えてください。 お願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
こんにちわ。 提示されている情報が少ないため推測で話します。 (すべてではなく部分的にソースを提示するとか) おそらく、「FileInfo.OpenRead()」 としか記述していないんじゃないですか? それではファイルオープンに成功した時に 閉じる事が出来ないためファイルロックになってしまっていると思われます。 例えば OpenRead()で取得したFileStreamを変数に格納し FileStreamをクローズする事でファイルはアンロックになると思います。 Dim FS As IO.FileStream FS = Nothing Try FS = FileInfo.OpenRead() FS.Close() FS = Nothing Catch ex As Exception 'アクセス拒否でOpenReadに失敗した場合はロックされない?(未確認) MsgBox(ex.Message) Finally If FS IsNot Nothing Then FS.Close() FS = Nothing End If End Try
お礼
ご回答頂き、誠に有難う御座います。 ご指摘頂いた内容を基に、問題を解決することが出来ました。