4

commons-netFTPClientを使用していくつかのファイルをアップロードしています。
アップロードの進行状況(現在アップロードされているバイト数)を取得するにはどうすればよいですか?

ありがとう

4

2 に答える 2

5

もちろん、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) { ... }
于 2012-03-12T23:26:03.150 に答える
0

これはまさにこの目的を目的としているように見えるので、CountingOutputStreamの方がおそらく良いと思いますか?

これはここの誰かによって答えられます:ApacheCommonsFTPClientを使用した進行状況の監視

于 2012-06-28T19:29:23.413 に答える