- PR -

VB.NETでCSVファイルの排他チェック

投稿者投稿内容
悟天
常連さん
会議室デビュー日: 2006/05/02
投稿数: 28
投稿日時: 2009-03-02 23:08
VB.NETでCSVファイルを読み込むのですが、
読み込み対象のCSVファイルが出力完了してから読み込みたいです。
出力中か出力完了しているかをチェックする方法はありますか?
排他モードで開けなかったらエラーとかで判断するのでしょうか??
メソッドや関数があればおしえてください。


[ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:08 ]

[ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:11 ]
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2009-03-02 23:27
引用:

toroさんの書き込み (2009-03-02 23:08) より:

VB.NETでCSVファイルを読み込むのですが、
読み込み対象のCSVファイルが出力完了してから読み込みたいです。
出力中か出力完了しているかをチェックする方法はありますか?
排他モードで開けなかったらエラーとかで判断するのでしょうか??
メソッドや関数があればおしえてください。


チェック対象の CSV を扱っている別のアプリケーションが自前のものでないのであれば例外を捕捉するくらいしか方法がありません。 自前であればロック機構を作れば良いです。 いずれにしても例外チェックは必要ですね。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
悟天
常連さん
会議室デビュー日: 2006/05/02
投稿数: 28
投稿日時: 2009-03-02 23:49
ご返信ありがとうございます。
ファイル出力するのは自前ではないです。
出力中に読み込んだ場合に例外を発生させたいのですが、
どのようにプログラムを記述すれば可能でしょうか。
使えるメソッドはありませんか??

[ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:51 ]
いとっと
常連さん
会議室デビュー日: 2005/06/10
投稿数: 33
投稿日時: 2009-03-03 00:35
引用:

toroさんの書き込み (2009-03-02 23:49) より:
出力中に読み込んだ場合に例外を発生させたいのですが、
どのようにプログラムを記述すれば可能でしょうか。
使えるメソッドはありませんか??

[ メッセージ編集済み 編集者: toro 編集日時 2009-03-02 23:51 ]



例外は発生させるものではなく、発生するものです。
ファイルが指定されたモードで開けない状態であれば自然と発生します。
ファイルを開く処理を適切なExceptionでtry - catch してください。
悟天
常連さん
会議室デビュー日: 2006/05/02
投稿数: 28
投稿日時: 2009-03-03 01:12
ご返信ありがとうございます。
指定する"モード"とは排他モードですか?
ファイルを開く手段として、
FileクラスのOpenTextメソッドや
StreamReaderなどがあるかと思うのですが、
何を使えばファイルを開く際にモードを指定できますか?

[ メッセージ編集済み 編集者: toro 編集日時 2009-03-03 01:13 ]
いとっと
常連さん
会議室デビュー日: 2005/06/10
投稿数: 33
投稿日時: 2009-03-03 09:30
引用:

toroさんの書き込み (2009-03-03 01:12) より:
ご返信ありがとうございます。
指定する"モード"とは排他モードですか?
ファイルを開く手段として、
FileクラスのOpenTextメソッドや
StreamReaderなどがあるかと思うのですが、
何を使えばファイルを開く際にモードを指定できますか?

[ メッセージ編集済み 編集者: toro 編集日時 2009-03-03 01:13 ]




聞くだけではなく調べたり試してみた方がよいと思います。
もし既に試されたことがあるのであれば、それを書いてどこがうまく動かないのか
明記していただけると回答がしやすくなります。

http://msdn.microsoft.com/ja-jp/library/system.io.filestream(VS.80).aspx
悟天
常連さん
会議室デビュー日: 2006/05/02
投稿数: 28
投稿日時: 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 ]
King
ぬし
会議室デビュー日: 2008/06/20
投稿数: 284
投稿日時: 2009-03-04 09:11
引用:
読み込みファイルのファイル拡張子が何であっても
出力中に、FileAccess.Readを指定してOpenしたら
例外が発生するのでしょうか。(ファイルの種類は問わないのでしょうか)


コードが書けたのなら試せるのでは?

スキルアップ/キャリアアップ(JOB@IT)