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

解決済みの質問

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

Framework2.0で開発しています。

今の所、ファイルへのアクセス許可を判定する際に、クラス「System.IO.FileInfo」のメソッド「OpenRead」を実行し、エラーなるかならないかで、ファイルへアクセスできないできるを判断しています。

メソッド「OpenRead」実行時にファイルへロックを掛けてしまい、その後プログラムのプロセスが終了するまで、ファイルのロックが解除されなくて困っています。

ファイルをロックせずに、ファイルへのアクセス許可を判定する方法を教えてください。
お願い致します。

投稿日時 - 2012-04-25 14:47:02

連想キーワード:

QNo.7440617

すぐに回答ほしいです

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

こんにちわ。

提示されている情報が少ないため推測で話します。
(すべてではなく部分的にソースを提示するとか)

おそらく、「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

投稿日時 - 2012-04-25 16:24:40

お礼

ご回答頂き、誠に有難う御座います。

ご指摘頂いた内容を基に、問題を解決することが出来ました。

投稿日時 - 2012-04-26 11:45:25

0人が「このQ&Aが役に立った」と投票しています

あわせてチェックしたい
  • vb.net Charsメソッドについて ...
  • 認証が必要なディレクトリに対して、VBから IO.DirectoryI ...
  • VisualStudioと.NET Frameworkについて ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら