Използвам commons-net FTPClient за качване на някои файлове.
Как мога да получа напредъка на качването (брой байтове, качени сега)?
Благодаря
Използвам commons-net FTPClient за качване на някои файлове.
Как мога да получа напредъка на качването (брой байтове, качени сега)?
Благодаря
Разбира се, просто използвайте 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, тъй като изглежда предназначен точно за тази цел?
На това е отговорено от някой тук: Наблюдение на напредъка с помощта на Apache Commons FTPClient
Опитвам се да разделя този низ със запетая като разделител. Сложих низ "Smith,Erdos,William" и той просто извежда "William", но не и Smith и Erdos. Трябва да има нещо нередно тук, което просто не виждам, може ли някой да помогне?
- person redDevil   schedule 13.03.2012