commons-netFTPClientを使用していくつかのファイルをアップロードしています。
アップロードの進行状況(現在アップロードされているバイト数)を取得するにはどうすればよいですか?
ありがとう
commons-netFTPClientを使用していくつかのファイルをアップロードしています。
アップロードの進行状況(現在アップロードされているバイト数)を取得するにはどうすればよいですか?
ありがとう
もちろん、CopyStreamListenerを使用してください。以下に、ファイル取得の例(commons-io wikiからコピー)を示します。これにより、他の方法で簡単に変更できます。
try {
InputStream stO =
new BufferedInputStream(
ftp.retrieveFileStream("foo.bar"),
ftp.getBufferSize());
OutputStream stD =
new FileOutputStream("bar.foo");
org.apache.commons.net.io.Util.copyStream(
stO,
stD,
ftp.getBufferSize(),
/* I'm using the UNKNOWN_STREAM_SIZE constant here, but you can use the size of file too */
org.apache.commons.net.io.CopyStreamEvent.UNKNOWN_STREAM_SIZE,
new org.apache.commons.net.io.CopyStreamAdapter() {
public void bytesTransferred(long totalBytesTransferred,
int bytesTransferred,
long streamSize) {
// Your progress Control code here
}
});
ftp.completePendingCommand();
} catch (Exception e) { ... }
これはまさにこの目的を目的としているように見えるので、CountingOutputStreamの方がおそらく良いと思いますか?
これはここの誰かによって答えられます:ApacheCommonsFTPClientを使用した進行状況の監視