- - PR -
VB.NETでCSVファイルの排他チェック
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2009-03-02 23:08
VB.NETでCSVファイルを読み込むのですが、
読み込み対象のCSVファイルが出力完了してから読み込みたいです。 出力中か出力完了しているかをチェックする方法はありますか? 排他モードで開けなかったらエラーとかで判断するのでしょうか?? メソッドや関数があればおしえてください。 [ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:08 ] [ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:11 ] | ||||
|
投稿日時: 2009-03-02 23:27
チェック対象の CSV を扱っている別のアプリケーションが自前のものでないのであれば例外を捕捉するくらいしか方法がありません。 自前であればロック機構を作れば良いです。 いずれにしても例外チェックは必要ですね。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2009-03-02 23:49
ご返信ありがとうございます。
ファイル出力するのは自前ではないです。 出力中に読み込んだ場合に例外を発生させたいのですが、 どのようにプログラムを記述すれば可能でしょうか。 使えるメソッドはありませんか?? [ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:51 ] | ||||
|
投稿日時: 2009-03-03 00:35
例外は発生させるものではなく、発生するものです。 ファイルが指定されたモードで開けない状態であれば自然と発生します。 ファイルを開く処理を適切なExceptionでtry - catch してください。 | ||||
|
投稿日時: 2009-03-03 01:12
ご返信ありがとうございます。
指定する"モード"とは排他モードですか? ファイルを開く手段として、 FileクラスのOpenTextメソッドや StreamReaderなどがあるかと思うのですが、 何を使えばファイルを開く際にモードを指定できますか? [ メッセージ編集済み 編集者: toro 編集日時 2009-03-03 01:13 ] | ||||
|
投稿日時: 2009-03-03 09:30
聞くだけではなく調べたり試してみた方がよいと思います。 もし既に試されたことがあるのであれば、それを書いてどこがうまく動かないのか 明記していただけると回答がしやすくなります。 http://msdn.microsoft.com/ja-jp/library/system.io.filestream(VS.80).aspx | ||||
|
投稿日時: 2009-03-03 23:47
質問の仕方が悪くて申し訳ないです、
手元に開発環境がなくて動作確認ができないのですが、 ↓こんな感じでしょうか。 Try Dim fs2 As FileStream fs2 = File.Open(path,FileMode.Open,FileAccess.Read)★ここで例外発生 fs2.Close() Catch e As Exception ★例外発生時の処理 End Try 読み込みファイルのファイル拡張子が何であっても 出力中に、FileAccess.Readを指定してOpenしたら 例外が発生するのでしょうか。(ファイルの種類は問わないのでしょうか) [ メッセージ編集済み 編集者: toro 編集日時 2009-03-04 01:00 ] | ||||
|
投稿日時: 2009-03-04 09:11
コードが書けたのなら試せるのでは? |