Renan Mathias Fernandes wrote:
> Hello,
> 
>       I am trying to learn/implement a FTP Client, but I am facing a problem:
>       How can I check if the retrieveFile method has finished downloading a
>       file? As far as I can see, there is no easy way to do this, am I
>       incorrect?

You are incorrect.  FTPClient.retrieveFile returns a Deferred that fires
when the download is complete (or reports a failure).

The API doc hints at this, but could be clearer.
<http://twistedmatrix.com/documents/current/api/twisted.protocols.ftp.FTPClient.html#retrieveFile>

>     try:
>         ftpClient.retrieveFile('testFile.txt',test)
>     except:
>         print "Exception -", sys.exc_value
>         reactor.stop()
> 
> 
> Can anyone shed a light?

A direct correction to this snippet is:

    d = ftpClient.retrieveFile('testFile.txt', test)
    def eb(failure):
        print "Exception -", failure.getErrorMessage()
        reactor.stop()
    d.addErrback(eb)

(Although like your code will only stop the reactor when an error
occurs, and doesn't do anything when the download completes
successfully.)

-Andrew.


_______________________________________________
Twisted-Python mailing list
Twisted-Python@twistedmatrix.com
http://twistedmatrix.com/cgi-bin/mailman/listinfo/twisted-python

Reply via email to