commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Apache Wiki <wikidi...@apache.org>
Subject [Jakarta-commons Wiki] Update of "Net/FrequentlyAskedQuestions" by Guilherme Silva
Date Fri, 27 Jan 2006 13:24:33 GMT
Dear Wiki user,

You have subscribed to a wiki page or wiki category on "Jakarta-commons Wiki" for change notification.

The following page has been changed by Guilherme Silva:
http://wiki.apache.org/jakarta-commons/Net/FrequentlyAskedQuestions

The comment on the change is:
My Code needs an FTPClient ready to transfer files. Sorry about the english.

------------------------------------------------------------------------------
  in RAM.
  
  ----
- '''Q: The storeFile method of FTPClient class calls copyStream method of org.apache.commons.net.io.Utils.
The method in Utils takes a CopyStreamListener listener as a parameter. Is there anyway I
can have a listener when calling storeFile? This way i can get the update of the bytes transferred
from another thread
+ '''Q: The storeFile method of FTPClient class calls copyStream method of org.apache.commons.net.io.Utils.
The method in Utils takes a CopyStreamListener listener as a parameter. Is there anyway I
can have a listener when calling storeFile? This way i can get the update of the bytes transferred
from another thread'''
  
+ '''A:''' If you need to use a CopyStreamListener, you can manually open the connection using
the method '''retrieveFileStream''' instead of storeFile and copy the contents from one file
to another using the method '''copyStream'''.
+ 
+ {{{
+ 	try {
+             InputStream stO =
+                 new BufferedInputStream(
+                     ftp.retrieveFileStream(fnO),
+                     ftp.getBufferSize());
+ 
+             OutputStream stD =
+                 new FileOutputStream(fnD);
+ 
+             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) { ... }
+ }}}
+ 
+ This snipet is a simple version of retrieveFile method. If you consult the original version,
you will see that all you need to do is change the copyStream method according to your needs.
+ 

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message