我想做一个简单的ftp程序,但是主要需要更新的功能,让本地站点和远程站点能自动的更新,需要什么技术?? 大家好: 我是一个初学者,希望能做一个这样的软件,不知道需要什么技术,通过什么手段能获得远程的列表,等等,希望能练习一下。谢谢,希望能提供点资料!!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 CInternerSessionCFtpConnectionCFtpFileFind............... CInternetSession* pSession;CFtpConnection* pConnection=NULL;pSession=new CInternetSession;pConnection=pSession->GetFtpConnection(host,username,password);//建立FTP连接,host,username,password都是CString类型if (pConnection){ CString path; pSession->GetCurrentDirectory(path);//得到FTP当前目录 CFtpFileFind *pFileFind=new CFtpFileFind(pConnection); BOOL bOk=pFileFind->FindFile("*");//查找所有文件 if (!bOk){ pFileFind->Close(); }while(bOk)//循环查找来实现文件列表{ bOk=pFileFind->FindNextFile(); CString FileName=pFileFind->GetFileName();//得到找到的文件名} ..................下载文件就是pConnection->GetFile上传文件就是pConnecion->PutFile具体的你自己去看看MSDN吧大概就这些了 int WINAPI DisplayDir(HWND hX, DWORD dwFlags){ WIN32_FIND_DATA pDirInfo; HINTERNET hDir; DWORD dError; char DirList[MAX_PATH]; DWORD dwTemp=MAX_PATH; LPDWORD temp =&dwTemp; LPVOID lpOption; DWORD dwSize; LPDWORD lpdwSize = &dwSize;SendDlgItemMessage(hX,IDC_FTPList,LB_RESETCONTENT,0,0); if ( !(hDir = FtpFindFirstFile (hSecondary, TEXT ("*.*"), &pDirInfo, dwFlags, 0) )) if (GetLastError() == ERROR_NO_MORE_FILES) { MessageBox(hX,"There are no files here!!!","Display Dir",MB_OK); InternetCloseHandle(hDir); return 1; } else { ErrorOut (hX, GetLastError (), "FindFirst error: "); InternetCloseHandle(hDir); return 0; } sprintf(DirList, pDirInfo.cFileName); if (pDirInfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) strcat(DirList," <DIR> "); SendDlgItemMessage(hX,IDC_FTPList,LB_ADDSTRING,0,(LPARAM)DirList); dError = NO_ERROR; do { if (!InternetFindNextFile (hDir, &pDirInfo)) { dError = GetLastError(); if ( dError == ERROR_NO_MORE_FILES ) { InternetCloseHandle(hDir); return 1; } else { ErrorOut (hX,GetLastError(), "InternetFindNextFile"); InternetCloseHandle(hDir); return 0; } } else { sprintf(DirList, pDirInfo.cFileName); if (pDirInfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) strcat(DirList," <DIR> "); SendDlgItemMessage(hX,IDC_FTPList,LB_ADDSTRING,0, (LPARAM)DirList); } } while ( TRUE); if (!InternetCloseHandle(hDir) ) { InternetCloseHandle(hDir); ErrorOut (hX,GetLastError(), "InternetCloseHandle error"); return 0; } else return 1;} 为什么在继承CPropertyPage的类中调用EnableWindow(),ShowWindow()都断言 C++ 求图像处理构造矩阵 正交矩阵 想学习编码级的视频编、解码编程 关于CListBox自绘,鼠标移过时如何只重绘鼠标所在的item 关于在VC中修改注册表的问题 求DirectX 9.0 SDK 在Zip文件格式中,什么是Central Directory Structure. FileMapping如何在程序运行过程中扩大? ■■■工作者线程的简单问题,请进■■■ 关于CComboBox的问题?????? CFileDialog怎么设置过滤条件?
CFtpConnection
CFtpFileFind...............
CFtpConnection* pConnection=NULL;
pSession=new CInternetSession;
pConnection=pSession->GetFtpConnection(host,username,password);//建立FTP连接,host,username,password都是CString类型if (pConnection)
{
CString path;
pSession->GetCurrentDirectory(path);//得到FTP当前目录
CFtpFileFind *pFileFind=new CFtpFileFind(pConnection);
BOOL bOk=pFileFind->FindFile("*");//查找所有文件
if (!bOk)
{
pFileFind->Close();
}
while(bOk)//循环查找来实现文件列表
{
bOk=pFileFind->FindNextFile();
CString FileName=pFileFind->GetFileName();//得到找到的文件名
}
..................
下载文件就是
pConnection->GetFile
上传文件就是pConnecion->PutFile具体的你自己去看看MSDN吧
大概就这些了
{
WIN32_FIND_DATA pDirInfo;
HINTERNET hDir;
DWORD dError;
char DirList[MAX_PATH];
DWORD dwTemp=MAX_PATH;
LPDWORD temp =&dwTemp;
LPVOID lpOption;
DWORD dwSize;
LPDWORD lpdwSize = &dwSize;SendDlgItemMessage(hX,IDC_FTPList,LB_RESETCONTENT,0,0);
if ( !(hDir = FtpFindFirstFile (hSecondary, TEXT ("*.*"), &pDirInfo,
dwFlags, 0) ))
if (GetLastError() == ERROR_NO_MORE_FILES)
{
MessageBox(hX,"There are no files here!!!","Display Dir",MB_OK);
InternetCloseHandle(hDir);
return 1;
}
else
{
ErrorOut (hX, GetLastError (), "FindFirst error: ");
InternetCloseHandle(hDir);
return 0;
} sprintf(DirList, pDirInfo.cFileName);
if (pDirInfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
strcat(DirList," <DIR> ");
SendDlgItemMessage(hX,IDC_FTPList,LB_ADDSTRING,0,(LPARAM)DirList); dError = NO_ERROR;
do
{
if (!InternetFindNextFile (hDir, &pDirInfo))
{
dError = GetLastError();
if ( dError == ERROR_NO_MORE_FILES )
{
InternetCloseHandle(hDir);
return 1;
}
else
{
ErrorOut (hX,GetLastError(), "InternetFindNextFile");
InternetCloseHandle(hDir);
return 0;
}
}
else
{
sprintf(DirList, pDirInfo.cFileName);
if (pDirInfo.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY)
strcat(DirList," <DIR> ");
SendDlgItemMessage(hX,IDC_FTPList,LB_ADDSTRING,0,
(LPARAM)DirList);
}
}
while ( TRUE); if (!InternetCloseHandle(hDir) )
{
InternetCloseHandle(hDir);
ErrorOut (hX,GetLastError(), "InternetCloseHandle error");
return 0;
}
else
return 1;}