Ftp Client source code, VC++6.0, MFC.
来源:互联网 发布:佳能打印软件app 编辑:程序博客网 时间:2024/05/14 13:15
/********************************************************************
* File: FtpClient.h, interface for the CFtpClient class.
* Author: Wen Xiaoyong(Wenxy), 20050111,a.m.,wen_kernel@163.com
* Copyright: (C) Wenxy,2005
* Fix history:
*
********************************************************************/
#if !defined(AFX_FTPCLIENT_H__6D565AC0_46D0_4E18_B1F6_3663A9F9AAF2__INCLUDED_)
#define AFX_FTPCLIENT_H__6D565AC0_46D0_4E18_B1F6_3663A9F9AAF2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// CFtipClient class
#include <stdio.h>
#include <afx.h>
#include <afxwin.h>
#include <afxinet.h>
class CFtpClient
{
public:
bool GetFtpFileList(); // 获取FTP服务器上的文件列表
bool DownloadFile(CString &strRemoteFile, CString &strLocalFile); // 下载文件
bool LookFtpServerInfo(); // 查看FTP服务器的升级信息
CFtpClient(CString strFtpIp);
virtual ~CFtpClient();
protected:
CInternetSession m_sess; // CInternetSession对象
CFtpConnection *m_pConnect; // CFtpConnection对象指针
CFtpFileFind *m_pFinder; // CFtpFileFind对象指针
CString m_strFtpServer; // ftp server IP
CString m_strLocalFile; // local file
CString m_strRemoteFile; // remore file
int m_nErrorCode; // error code
CString m_strErrorMsg; // error massage
};
#endif // !defined(AFX_FTPCLIENT_H__6D565AC0_46D0_4E18_B1F6_3663A9F9AAF2__INCLUDED_)
/********************************************************************
* File: FtpClient.cpp: implementation of the CFtpClient class.
* Author: Wen Xiaoyong(Wenxy), 20050111,a.m.,wen_kernel@163.com
* Copyright: (C) Wenxy,2005
* Fix history:
*
********************************************************************/
#include "stdafx.h"
#include "FtpClient.h"
// Construction/Destruction
CFtpClient::CFtpClient(CString strFtpIp):m_sess(_T("MyProgram/1.0"))
{
m_pConnect = NULL;
m_pFinder = NULL;
m_strFtpServer = strFtpIp;
m_strLocalFile = "";
m_strRemoteFile = "";
}
CFtpClient::~CFtpClient()
{
if (m_pConnect != NULL)
{
m_pConnect->Close();
delete m_pConnect;
}
if (m_pFinder != NULL)
{
delete m_pFinder;
}
}
bool CFtpClient::LookFtpServerInfo()
{
// create a session object to initialize WININET library
// Default parameters mean the access method in the registry
// (that is, set by the "Internet" icon in the Control Panel)
// will be used.
try
{
// Request a connection to ftp.microsoft.com. Default
// parameters mean that we'll try with username = ANONYMOUS
// and password set to the machine name @ domain name
m_pConnect = m_sess.GetFtpConnection(m_strFtpServer);
// use a file find object to enumerate files
m_pFinder = new CFtpFileFind (m_pConnect);
}
catch (CInternetException* pEx)
{
TCHAR sz[1024];
pEx->GetErrorMessage(sz, 1024);
printf("ERROR! %s/n", sz);
pEx->Delete();
return false;
}
return true;
}
// 下载文件
bool CFtpClient::DownloadFile(CString &strRemoteFile, CString &strLocalFile)
{
try
{
// download file
if(0 == m_pConnect->GetFile(strRemoteFile, strLocalFile))
{
m_nErrorCode = GetLastError();
printf("Error: 获取文件[%s]失败![Error=%d], ", strRemoteFile, m_nErrorCode);
switch(m_nErrorCode)
{
case 3:
m_strErrorMsg = "系统找不到路径";
break;
case 80:
m_strErrorMsg = "本地磁盘已存在此文件";
break;
case 12003:
m_strErrorMsg = "FTP服务器上不存在此文件";
break;
}
printf("%s[%s]/n/n", m_strErrorMsg, strLocalFile);
return false;
}
else
{
printf("Note: 从FTP服务器下载文件[%s]成功./n", strRemoteFile);
}
}
catch (...)
{
printf("Error: download file[%s] failed./n", strRemoteFile);
}
return true;
}
// 获取FTP服务器上的文件列表
bool CFtpClient::GetFtpFileList()
{
// get file list in ftp server
// start looping
BOOL bWorking = m_pFinder->FindFile(_T("*"));
if (false == bWorking)
{
return false;
}
while (bWorking)
{
bWorking = m_pFinder->FindNextFile();
printf("%s/n", (LPCTSTR) m_pFinder->GetFileURL());
}
return true;
}
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wenxy1/archive/2008/12/03/3439874.aspx
- Ftp Client source code, VC++6.0, MFC.
- Ftp Client source code, VC++6.0, MFC.
- vsftpd ftp client pwd implementation source code
- vsftpd ftp client ls command implementation source code
- MR_Android view client source code(1)
- MR_Android view client source code(2)
- VC++ MFC Tutorial: CListCtrl, InsertItem, Using List Control, SetImageList, Article with source code.
- The VC++6.0 C++ source code for playing wave file
- MFC下的FTP VC++
- Smart Client Case Study Source Code Download from MSDN China
- Smart Client Case Study Source Code Download from MSDN China
- Useful websites about VC++/MFC open source
- FTP服务器和客户端源代码编写问题(ftp server client source)
- FTP服务器和客户端源代码编写问题(ftp server client source)
- ftp client
- FTP Client
- ftp client
- ftp client
- 第七课 面向对象编程(五)
- 改善Java企业级应用的可用性
- cache存储器
- sizeof 和strlen的区别
- 麻雀虽小,五脏俱全:从一个小功能看软件开发过程
- Ftp Client source code, VC++6.0, MFC.
- 如何制作嵌入式Linux文件系统
- 要考试
- 用fstream创建文件
- 虚拟存储器
- 内存泄漏定位
- c# 将webform的图片另存为(本机或服务器硬盘上)
- 从命令行操作启动oracle数据库
- 28句话让你的人际关系更上一层楼