GFFtp Class Documentation

Written in December 2003 by Gerd Feldkirch (mailto: gerd.feldkirch@t-online.de)

This class supplies methods for an FTP-Client.
If a method fails the return value is -1, otherwise it is 0.
The servers response code is alwaly stored in the member variable 'm_iResponse' as an integer.
The complete response string is stored in the meber variable 'm_saResponse' as a StringArray. An FTP-Server response can consist out of multiple lines.


Members


IPAddress m_IpCommand
TCPSocket m_TcpCommand

IPAddress m_IpData

TCPSocket m_TcpData

int m_iEcho

int m_iResponse

StringArray m_saResponse


Constructor


GFFtp()


Connection methods


connect( String _HostName, int _Port, String _Username, String _Password )

quit()


Directory methods


cwd( String _Directory )
pwd()

cdup()

mkd( String _Directory )

rmd( String _Directory

list( String _Directory )

nlst( String _Directory )


Transfer parameter methods


pasv()

ascii()

binary()


File action methods


getFile( String _LocalFilename, String _RemoteFilename, int _iMode )

getStream( Stream _Stream, String _RemoteFilename, int _iResumeOffset )

putFile( String _RemoteFilename, String _LocalFilename )

putStream( String _RemoteFilename, Stream _Stream )

putPakFile( String _RemoteFilename, String _LocalFilename )

move( String _SourceFilename, String _DestinationFilename )

appendFile( String _RemoteFilename, String _LocalFilename )

appendStream( String _RemoteFilename, Stream _Stream )

appendPakFile( String _RemoteFilename, String _PakFilename )

dele( String _Filename )

abor()



Informational methods


site()

stat()

syst()

feat()
help( String _Command )



Miscellaneous methods


noop()



Utility methods


print( String _String )
readResponse()
printResponse()
command( String _String )

Sample Application

module Main;
function main() {
 GFFtp gfFtp; // create GFFtp object
 if( gfFtp.connect( "127.0.0.1", 21, "username", "password" ) < 0 ) return; // connect to server
 if( gfFtp.binary() ) < 0 ) return; // select binary transfer mode
 if( gfFtp.putFile( "/Incoming/serverfile.zip", "localfile.zip" ) < 0 ) return; // upload file
 if( gfFtp.cwd( "/Incoming" ) < 0 ) return; // change working directory
 if( gfFtp.mkd( "Moved_Files" ) < 0 ) return; // create directory
 if( gfFtp.move( "/Incoming/serverfile.zip", "/Incoming/Moved_Files/serverfile.zip" ) < 0 ) return; // move file
 if( gfFtp.getFile( "localfile2.zip", "/Incoming/Moved_Files/serverfile.zip", F_RESUME ) < 0 ) return; // download file
 gfFtp.quit(); // quit session
}