1

Apache Commons VFSを使用して、ファイル転送の進行状況を監視するにはどうすればよいですか。アップロードとダウンロードでそれを実行できる必要があります。HTTP、FTP、SFTP、および FTPS の進行状況も監視する必要があります。それに関するドキュメントには何も見つかりません。

4

2 に答える 2

2

これは、VFS から入力ストリームと出力ストリームを取得することで実行できます。次の例では、commons-net (VFS の依存関係) のユーティリティ クラスを使用して、コピーと進行状況の監視を管理します。同様に手動で行うこともできます。

import org.apache.commons.net.io.Util;
import org.apache.commons.net.io.CopyStreamListener;

private void copy(FileObject sourceFile, FileObject destinationFile, CopyStreamListener progressMonitor) throws IOException {
    InputStream sourceFileIn = sourceFile.getContent().getInputStream();
    try {
        OutputStream destinationFileOut = destinationFile.getContent().getOutputStream();
        try {
            Util.copyStream(sourceFileIn, destinationFileOut, Util.DEFAULT_COPY_BUFFER_SIZE, sourceFile.getContent().getSize(), progressMonitor);
        } finally {
            destinationFileOut.close();
        }
    } finally {
        sourceFileIn.close();
    }
}
于 2012-06-21T08:10:37.183 に答える