2

ディレクトリに新たに導入されたファイルに対して、ZIP-アクションを実行する必要があります。そこで、発生する CREATE イベントをサブスクライブします。そのディレクトリへのコピー操作には時間がかかります。

そのため、ファイルにアクセスすると、「別のプロセスによってロックされています」というACCESS_DENIEDが発生します。

NIO は「LOCK Released」のようなものを提供しますか、それともロックを解除するためにファイルをポーリングする必要がありますか? ここで説明したように: http://stackoverflow.com/questions/750471/how-to-know-whether-a-file-copying-is-in-progress-complete-in-Java-1-6

助けてくれてありがとう。

ゲルト

4

2 に答える 2

1

ファイルを別のディレクトリにコピーします。完了したら、監視対象のディレクトリに移動します。

java.nio.file.Files.move(srcFile, targetFile, StandardCopyOption.ATOMIC_MOVE);

ウォッチャーには 1 つの CREATE イベントが表示されます

于 2013-01-17T20:10:20.340 に答える
0

最初の大きなファイルが書き込まれた後に、追加の小さなファイルが同じディレクトリに書き込まれるように、コピー操作を変更します。ファイル名は、元のファイルの名前に拡張子を加えたものにすることができます。

ウォッチャーは、この拡張子を持つファイルを探し、切り取って元のファイル名を取得し、Zip アクションを開始します。

別のオプションとして、コピー操作によって、探している拡張子とは異なる拡張子を持つファイルが書き込まれる可能性があります。完了すると、ファイルの名前が変更され、正しい拡張子が付けられます。

于 2013-01-17T19:52:34.713 に答える