解決済みの質問
Framework2.0で開発しています。
今の所、ファイルへのアクセス許可を判定する際に、クラス「System.IO.FileInfo」のメソッド「OpenRead」を実行し、エラーなるかならないかで、ファイルへアクセスできないできるを判断しています。
メソッド「OpenRead」実行時にファイルへロックを掛けてしまい、その後プログラムのプロセスが終了するまで、ファイルのロックが解除されなくて困っています。
ファイルをロックせずに、ファイルへのアクセス許可を判定する方法を教えてください。
お願い致します。
投稿日時 - 2012-04-25 14:47:02
こんにちわ。
提示されている情報が少ないため推測で話します。
(すべてではなく部分的にソースを提示するとか)
おそらく、「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が役に立った」と投票しています
OKWaveのオススメ
おすすめリンク