dポイントプレゼントキャンペーン実施中!

排他ロックが掛かっている(別のプロセスが使用している)
テキストファイルを読み込みたいのですが、
System.IO.FileStreamを実行した後に、IOExceptionエラーが発生し、
読み込みができません。

System.IO.FileStreamにはこだわってませんので、
排他ロックが掛かっているテキストファイルを読み込む方法を
ご存知の方は、ご教授頂けませんでしょうか。

宜しくお願いします。

<ソースコード>
'ファイルパス
wFullPath = "\\XXX.XXX.XXX.XXX\TEXT\TEST.TXT"
(XXX.XXX.XXX.XXX:IPアドレス)

'ファイルを開く
Dim fs As New System.IO.FileStream(wFullPath, _
System.IO.FileMode.Open, _
System.IO.FileAccess.ReadWrite, _
System.IO.FileShare.ReadWrite)

'FileStreamを基にしたStringReaderのインスタンスを作成
Dim enc As System.Text.Encoding = _
System.Text.Encoding.GetEncoding("shift_jis")

Dim sr As New System.IO.StreamReader(fs, enc)

'ファイルの内容をすべて読み込む
Dim s As String = sr.ReadToEnd()

<開発環境>
言語:VB.NET
Microsoft Visual Studio 2008
Microsoft .NET Framework Version 3.5 SP1

A 回答 (3件)

全然詳しくないですが。



ロックかけてる人が「リードもライトも許可してない」ので
リードのみでも許されない、という事では。
そうなら、ロックかけてる人が「リードは許可する」にでも変更しない限り無理かと。

http://dobon.net/vb/dotnet/file/fileshare.html
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

確かにumamimiさんのおっしゃる通りだと思います。

ロックをかけているのは他社で開発したシステムなので、
開発元がOKを出さないと難しいです。

お礼日時:2011/03/08 12:48

こんばんは。



あれ?
ダメですか・・・?

>System.IO.FileShare.Read
これは元のままでよさげ。

>IOExceptionエラーが発生しました。
派生クラスじゃなくて?
エラーコードとエラーメッセージはなんて出てますか?
    • good
    • 0
この回答へのお礼

<エラーコード> 57

<エラーメッセージ>
別のプロセスで使用されているため、プロセスはファイル
'\\\XXX.XXX.XXX.XXX\TEXT\TEST.TXT' にアクセスできません。

と出ています。

お礼日時:2011/03/08 10:05

こんにちは。



単に読み込みだけなら、
ReadWrite
じゃなくて
Read
にしては?
    • good
    • 0
この回答へのお礼

早速の返事ありがとうございます。

試してみましたが、結果は同じでした。
IOExceptionエラーが発生しました。
(以下のソースを実行)

'ファイルを開く
Dim fs As New System.IO.FileStream(wFullPath, _
System.IO.FileMode.Open, _
System.IO.FileAccess.Read, _
System.IO.FileShare.Read)

お礼日時:2011/03/07 17:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!