VB.netで使用中のテキストファイルを読み取る方法


VB.netで使用中のテキストファイルを開こうとすると共有違反のエラーが発生します。
メモ帳では開くことができるのに、開くことができないといった場合は、StreamReaderを使えば開くことができます。

次のようなエラーメッセージを回避する方法に関して説明します。

System.IO.IOException: 別のプロセスで使用されているため、プロセスはファイル ’○○’ にアクセスできません。

具体的には、FileStreamをOpenするときに、

FileMode:Open
FileAccess:Read
FileShare:ReadWrite

とします。

ソースコードは以下です。

    Dim sFileName As String = "\[読み取るファイルのパス\]"  
    Dim sText As String  
    Dim objFS As IO.FileStream  
    Dim objSR As IO.StreamReader  
    objFS = IO.File.Open(sFileName, IO.FileMode.Open, IO.FileAccess.Read, IO.FileShare.ReadWrite)  
    objSR = New IO.StreamReader(objFS, System.Text.Encoding.GetEncoding(932))  
    'ここで内容を読取ります。  
    sText = objSR.ReadToEnd  
    objSR.Close()  
    objFS.Close()  

この方法を使って、パソコン遠隔操作ソフトのチームビューアーのIDを確認するコードを書いてみました。
TeamViewerIDをVB.netで確認する方法