Environment: Windows 98, Visual C++ 6
I created this class because I needed a class to allow me to synchronize
my local system with files on a remote system. At first, I looked to MSDN for
help, but couldn’t get their examples to work. Then, I looked to CodeGuru for
assistance. I posted the question of how to retreive a file using FTP and
Ken Sutherland was able to help me.
The source code he gave me worked for only one file transfer at a time so
I modified it for my purpose so that it allows for up to 100 files to
be transferred on one operation.
CFtpGet Class Definition
// ftpget.h class CFtpGet { public:// function, in logical order CFtpGet(); virtual ~CFtpGet(); // password & user name bool SetAccessRight(CString userName,CString userPass); // open the connection bool OpenConnection(CString server); // only one file bool GetFile(CString remoteFile, CString localFile); // a full CString array int GetMultipleFile(CStringArray *remoteArray, CStringArray *localArray, int number_file); // close the connection bool CloseConnection(); private: // var CInternetSession *pInternetSession; CFtpConnection *pFtpConnection; CString strServerName; CString strPass; CString strUser; public: CString strAppName; bool missed[100]; };
Using the CFtpGet Class
To transfer a single file…
CFtpGet ftp; //start the class ftp.SetAccessRight("username","userpassword");// set user and pasword bool good = ftp.OpenConnection("server");// the name of the server if (!good) return; ftp.GetFile("somefile.zip","c:\downlaod\myfile.zip"); // see GetMultiplefile below ftp.CloseConnection();
To transfer multiple files…
CStringArray remote; CStringArray local; remote.Add("remote1.zip"); remote.Add("remote2.zip"); remote.Add("remote3.zip"); local.Add("local1.zip"); local.Add("local2.zip"); local.Add("local3.zip"); ftp.GetMultipleFile(&remote,&local,3);
This is my first Itnernet file transfer class and I’ll try to embelish this class as
time permits.