
排他ロックが掛かっている(別のプロセスが使用している)
テキストファイルを読み込みたいのですが、
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件)
- 最新から表示
- 回答順に表示

No.3
- 回答日時:
全然詳しくないですが。
ロックかけてる人が「リードもライトも許可してない」ので
リードのみでも許されない、という事では。
そうなら、ロックかけてる人が「リードは許可する」にでも変更しない限り無理かと。
http://dobon.net/vb/dotnet/file/fileshare.html
回答ありがとうございます。
確かにumamimiさんのおっしゃる通りだと思います。
ロックをかけているのは他社で開発したシステムなので、
開発元がOKを出さないと難しいです。
No.2
- 回答日時:
こんばんは。
あれ?
ダメですか・・・?
>System.IO.FileShare.Read
これは元のままでよさげ。
>IOExceptionエラーが発生しました。
派生クラスじゃなくて?
エラーコードとエラーメッセージはなんて出てますか?
<エラーコード> 57
<エラーメッセージ>
別のプロセスで使用されているため、プロセスはファイル
'\\\XXX.XXX.XXX.XXX\TEXT\TEST.TXT' にアクセスできません。
と出ています。
No.1
- 回答日時:
こんにちは。
単に読み込みだけなら、
ReadWrite
じゃなくて
Read
にしては?
早速の返事ありがとうございます。
試してみましたが、結果は同じでした。
IOExceptionエラーが発生しました。
(以下のソースを実行)
'ファイルを開く
Dim fs As New System.IO.FileStream(wFullPath, _
System.IO.FileMode.Open, _
System.IO.FileAccess.Read, _
System.IO.FileShare.Read)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
このQ&Aを見た人はこんなQ&Aも見ています
-
VBAでCSVファイルが使用中かどうかの確認
Visual Basic(VBA)
-
アクセスで入力したデータの順番が変わってしまいます
その他(ビジネス・キャリア)
-
CSVファイルが開かれているかどうか
Visual Basic(VBA)
-
-
4
すでにファイルが開かれている時のエラー回避
Visual Basic(VBA)
-
5
Accessを開くと「排他モードじゃないので変更しても保存できない」との旨の表示が出てしまう。
Access(アクセス)
-
6
Excel VBAでほかのアプリケーションで使用中(ロック)のファイルを上書き保存したい
その他(プログラミング・Web制作)
-
7
VBA。開いているテキストファイルを検索
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ExcelVBAで既に開いてるwordを...
-
フロッピー上のファイルクロー...
-
access テキストボックスの値取得
-
batファイルでレジストリキーの...
-
NAS上のファイルの使用中が解除...
-
VB6 Dir関数で52エラー発生
-
ASP.NETでWebConfigのエラー
-
至急
-
VBAでDLLが見つからないエラー
-
VBでファイルが開かれているか...
-
freadでデータがない場合の読込...
-
kernel32.dllファイルがコピー...
-
EXCEL マクロについて教えてく...
-
VBから参照できないCのDLLを使...
-
VB実行時エラー75:「パス名が...
-
ネットワーク上でのファイル操...
-
「パス名が無効です」の発生原因
-
パワーポイントで『訂正できな...
-
システムのシャットダウンは既...
-
アクセスのクエリでコンパイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
access テキストボックスの値取得
-
Returnに対するGoSubがありません
-
「パス名が無効です」の発生原因
-
PowerShellを使って関連付けら...
-
NAS上のファイルの使用中が解除...
-
アクセスのクエリでコンパイル...
-
VBでファイルが開かれているか...
-
ExcelVBAで既に開いてるwordを...
-
エクセルマクロでエラーの原因...
-
batファイルでレジストリキーの...
-
【COBOL】read文でエラー
-
VB6 Dir関数で52エラー発生
-
「アクティブ ユーザーが多すぎ...
-
データベースソフトのアクセス2...
-
VBから参照できないCのDLLを使...
-
DisplayAlertsブロパティで ”実...
-
Access2013にてドラッグ&ドロ...
-
ACCESS VBAでのインポート
-
すでにファイルが開かれている...
-
Vba ファイル書き込み時に書き...
おすすめ情報