ftp サーバーからファイルを取得するプログラムが、ダウンロードするファイルが進行中の転送であるかどうかを確認するための最良の方法は何ですか (ダウンロードを決定したときに、誰かがこのファイルを既にアップロードしています)。FTP クライアント API はこれを処理しますか? (例: apache commons ftp クライアント)。
3 に答える
それがあなたにとって十分かどうかはわかりませんが、「ダム」チェックだけが必要な場合は、試してみSystem.getSecurityManager().checkDelete()
ます。ストリームが開かれていない場合にのみ、ファイルを削除できます。
本当にありえないと思います。数年前、私は同様の問題を抱えていました.2つの選択肢があります。(残念ながら、Java ではなく C# でした)ファイルがまだ大きくなっているかどうか(2 回チェックする必要があるため、わずかな遅延が発生することを意味します)、または Windows を使用しているかどうか(Linux の使用方法がわからない)を確認できます。このファイルにアクセスしようとすると、ファイルが別のプロセスによって使用されているという例外が発生するはずです。2 つの可能性と、問題について考えるためのスターターです。他の誰かが本当に良い解決策を思いついているかもしれませんが、今のところ、それはあなたにとってちょっとした回避策かもしれません
Ftp は、ファイルが使用中かどうかを通知するようには設計されていません。ftp デーモンができることは、転送を拒否することだけです。これは、一部のサーバーで構成可能です。ファイルの名前を一時的に変更したり、そのためのスクリプトを提供したりするサーバーがあるかもしれませんが、それを見つける必要があります。