Может быть, этот код может указать вам правильное направление:
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(),
CopyStreamEvent.UNKNOWN_STREAM_SIZE,
new CopyStreamAdapter() {
public void bytesTransferred(long totalBytesTransferred,
int bytesTransferred,
long streamSize) {
// Your progress Control code here
}
});
ftp.completePendingCommand();
} catch (Exception e) { ... }