• 締切済み

ファイルを開く前に状況を確認したい。

こんにちわ。 VBで定期的にアップロードされてくるテキストファイルを処理するツールを作成しています。 Win2K環境で、クライアントからFTP転送であるテキストファイルが転送されてきます。 VBで作成中のツールでは1分おきにファイルの有無を確認しています。 当初はうまく動いていましたがたまにエラーが出るようになりました。 いろいろ状況を見ていますと、ファイル転送と同タイミングでファイルを開いた場合に起こっているようです。 FTP転送の有無にかかわらず、該当するファイルが自分自身のプログラム以外から開かれているということをチェックする方法はないですか? 開いていればスキップすると言う方法でこのエラーを回避したいのですが・・・。 お手数をお掛けいたしますが何卒お願い致します。

みんなの回答

  • sam_inoue
  • ベストアンサー率47% (27/57)
回答No.1

テキストファイルの処理はどのような記述でしょうか。 OpenステートメントならLock Read WriteとOn Errorステートメントの併用で チェックできると思います。 FSOのOpenTextFileだと読み取り専用で開いてしまうので Lock指定はできないようです。

zenon55
質問者

補足

アドバイス有難う御座います。 ファイルにアクセスしているタイミングは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サーバーはどのような方法で開いているか分かりません。 宜しくお願い致します。

関連するQ&A