• ベストアンサー

VB.NET ファイルへのアクセス許可の判定

Framework2.0で開発しています。 今の所、ファイルへのアクセス許可を判定する際に、クラス「System.IO.FileInfo」のメソッド「OpenRead」を実行し、エラーなるかならないかで、ファイルへアクセスできないできるを判断しています。 メソッド「OpenRead」実行時にファイルへロックを掛けてしまい、その後プログラムのプロセスが終了するまで、ファイルのロックが解除されなくて困っています。 ファイルをロックせずに、ファイルへのアクセス許可を判定する方法を教えてください。 お願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.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

NoMusicNoLife49
質問者

お礼

ご回答頂き、誠に有難う御座います。 ご指摘頂いた内容を基に、問題を解決することが出来ました。

関連するQ&A

専門家に質問してみよう