CFtpGet - FTP File Retrieval Class

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.

Downloads

Download demo project - 8 Kb
Download source - 16 Kb


Comments

  • Error

    Posted by Legacy on 07/24/2002 12:00am

    Originally posted by: Mathias

    After a ftp connection is open, it could�t close correctly ....
    So ... if you want to reconnect , the older connection will cause problems....

    Reply
  • CInternetSession() argument missing

    Posted by Legacy on 01/11/2002 12:00am

    Originally posted by: Keith Berson

    Maybe it's new with version 6.0 of Visual Studio, but I show the second argument of CInternetSession() as being the context. You have

    CInternetSession(strAppName,INTERNET_OPEN_TYPE_PRECONFIG);

    and it should be

    CInternetSession(strAppName,dwContext,INTERNET_OPEN_TYPE_PRECONFIG);

    Of course, this only matters if you are looking to use CInternetSession::OnStatusCallback(), as the default value for the CInternetSession() is INTERNET_OPEN_TYPE_PRECONFIG.

    Keith

    Reply
  • FTP (intranet) to use as Command line argument

    Posted by Legacy on 06/13/2001 12:00am

    Originally posted by: Guru

    How to use FTP in intranet with command line argument...
    
    any help in this will be appreciated.....
    Thanx in advance
    e-mail:gurvider_a@yahoo.com

    Reply
  • Nice and simple but...

    Posted by Legacy on 06/12/2001 12:00am

    Originally posted by: Bev

    Nice and simple but the example only works if I try to retrieve from the root directory of the ftp server.

    Anything in a lower directory is reported as missing.

    Am I missing something?

    Regards

    Bev

    Reply
  • Retreive file attributes from remote system

    Posted by Legacy on 06/05/2001 12:00am

    Originally posted by: Gaby NGONGO

    Is it possible to retreive only those files that are not opened ? In other words, is it possible to read file attributes from the remote system ?

    Reply
  • How can I use different Codepages?

    Posted by Legacy on 03/17/2001 12:00am

    Originally posted by: Gerald Harte

    Hi,

    i use the Visual C++ 6 FTP-Classe to get some File file from a mainfraime!
    But i have one Problem. The mainfraime does use a different codepage as the PC.
    If you take the DOS-FTP under Windows NT, you can use the command 'quote site sbdataconn=(ibm-273)'!
    I have not find out, where i can use this command under MFC!
    Maybe you have got a idea?

    Regards
    Gerald Harte

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • CentreCorp is a fully integrated and diversified property management and real estate service company, specializing in the "shopping center" segment, and is one of the premier retail service providers in North America. Company executives travel a great deal, carrying a number of traveling laptops with critical current business data, and no easy way to back up to the network outside the office. Read this case study to learn how CentreCorp implemented a suite of business continuity services that included …

Most Popular Programming Stories

More for Developers

RSS Feeds