1

フォルダーを監視するコードがあります。ファイルが 3 分間そこにとどまると、私のコードはそれを処理します。今から 3 分経過したかどうかは mtime に依存します。

ただし、10GB などの巨大なファイルを cp すると、3 分で終了できませんでし

cp の正しい動作を観察しましたか?

回避策はありますか?

ありがとう、

4

2 に答える 2

3

私の知る限り、前述の変更が完了すると mtime が更新されます。そして、それはとても正しく行われていると思います。ファイルが にコピーされている間に、ファイルが更新されているかどうかを知る必要があるのはなぜですか? そのファイルをたまたまコピーすると、不完全なファイルになってしまい、おそらく役に立たなくなります。

しかし、あなたの心が間違いなくそれに設定されている場合は、上記の回答で提案されているように、コピーインテリジェンスを確認し、mtime だけでなくファイルサイズにも依存してください。いずれかの方法でファイル サイズの変化が見られる場合は、mtime の内容に関係なく、ファイルが最後に処理された時点から変更されていることを確認できます。

于 2013-03-29T00:23:17.103 に答える
2

回避策はたくさんあります

  • ドットファイルにコピーし、コピーが完了したらその場所に移動します。これは、作成プロセスによって行われ、フォルダー内のドット以外のファイルのみを処理します。
  • クライアントがコピーを完了したことを示すシグナルを使用します (おそらく非ネットワーク ファイル システムでのみ実用的です)。
  • ファイルのサイズと の両方を使用しmtime、3 分以内にどちらも増加しない場合は、処理を続行します。
于 2013-03-28T23:27:27.053 に答える