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

こんにちわ。

VBで定期的にアップロードされてくるテキストファイルを処理するツールを作成しています。

Win2K環境で、クライアントからFTP転送であるテキストファイルが転送されてきます。

VBで作成中のツールでは1分おきにファイルの有無を確認しています。

当初はうまく動いていましたがたまにエラーが出るようになりました。

いろいろ状況を見ていますと、ファイル転送と同タイミングでファイルを開いた場合に起こっているようです。

FTP転送の有無にかかわらず、該当するファイルが自分自身のプログラム以外から開かれているということをチェックする方法はないですか?

開いていればスキップすると言う方法でこのエラーを回避したいのですが・・・。

お手数をお掛けいたしますが何卒お願い致します。

A 回答 (11件中11~11件)

テキストファイルの処理はどのような記述でしょうか。


OpenステートメントならLock Read WriteとOn Errorステートメントの併用で
チェックできると思います。

FSOのOpenTextFileだと読み取り専用で開いてしまうので
Lock指定はできないようです。

この回答への補足

アドバイス有難う御座います。

ファイルにアクセスしているタイミングは2回あります。
まず1回目がファイルの有無を確認しています。
2回目がファイルがあった場合に読み出しをしています。

1回目の有無確認は次のようにしています。

If Dir(Filename, vbNormal Or vbSystem Or vbReadOnly Or vbArchive Or vbHidden) = "" Then
'存在しない
List2.AddItem Date & "-" & Time & vbTab & List3.Text & vbTab & vbTab & "存在しない"
OkFLG = 0
Else
'存在する
List2.AddItem Date & "-" & Time & vbTab & List3.Text & vbTab & vbTab & "存在する"
OkFLG = 1
End If

次に、読み込みは、

'ファイルを開きます。
Open Filename For Input As #fileNo

と普通に開いています。

但し、FTPサーバーはどのような方法で開いているか分かりません。

宜しくお願い致します。

補足日時:2005/09/12 18:41
    • good
    • 0

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