ファイルのディレクトリを常にポーリングしており、読み取りの特定の基準を満たすファイルが表示されるたびに、ファイルを開いて解析します。
string newLine;
ifstream fileReader;
fileReader.open(filename.c_str());
while(!fileReader.eof())
{
getline(fileReader, newLine);
// do some stuff with the line...
}
filereader.close();
上記のコードは、1 秒ごとに実行され、新しいファイルのディレクトリをチェックするループ内にあります。私の問題は、処理のためにファイルをフォルダーに転送しているときに、ループがファイルを見つけてファイルの名前を ifstream に渡し、ifstream がそれを開いて不完全なファイルを解析しようとすることです。ファイルの解析を試みる前に、ファイルの書き込みが完了するまで ifstream を待機させるにはどうすればよいですか?
編集:返信者が私の問題を誤解しているように見えるので、ここで問題をよりよく言いたい. 私は2つのディレクトリを持っています
mydirectory/
mydirectoryParsed/
私のコードが動作する方法は、私のプログラムが mydirectory/ 内のファイルをチェックし、それらが見つかると、それらを解析し、ファイル内の情報を使用することです。ファイルへの書き込みは行われません。ファイルの解析が完了すると、ファイルは mydirectoryparsed/ に移動されます
問題は、ネットワーク経由でファイルを mydirectory/ に転送すると、ifstream が転送中にこれらのファイルを認識し、ディレクトリへの書き込みが完了する前に読み取りを開始することです。ファイルを解析する前に、ファイルが完全に書き込まれるまで ifstream を待機させるにはどうすればよいですか?