-1

外部アプリケーションからファイルを受け取るディレクトリが aix にあります。私のJavaプログラムは、アプリケーションによって完全に書き込まれたファイルのみを選択する必要があります.外部アプリケーションによってまだ書き込まれている不完全なファイルを選択するべきではありません. 誰かがサンプルを手伝ってくれますか?

4

4 に答える 4

1

この問題を解決する一般的な方法の 1 つは、ファイルが完全に書き込まれた後にファイルの名前を変更することです。

たとえば、アプリケーションは myFile.txt.tmp を書き込み、それが完了すると名前を myFile.txt に変更します。これを行うと、単に .tmp で終わるファイルを無視します...

または、すでに述べたように、alexcpn によるApache Camel File Componentをご覧ください...

于 2013-04-09T08:10:28.633 に答える
0

私のアプローチは、ファイルを最初に「一時」ディレクトリに書き込むことです。ファイルの書き込みが終了したら、最終的な宛先に移動する必要があります。「一時」ディレクトリと「最終」ディレクトリを同じファイルシステムに配置するように注意してください。そうしないと、機能する場合と機能しFile.renameTo()ない場合があります。Java 7 を使用Files.move()する場合は、より適切に使用できる可能性があります。

そのディレクトリ内のすべてのファイルが完全に書き込まれていることがわかっているため、明らかに、アプリケーションは「最終」ディレクトリ内のファイルのみをチェックする必要があります。

于 2013-04-09T07:34:25.273 に答える