大家好:
     我是一个初学者,希望能做一个这样的软件,不知道需要什么技术,通过什么手段能获得远程的列表,等等,希望能练习一下。谢谢,希望能提供点资料!!!

解决方案 »

  1.   

    CInternerSession
    CFtpConnection
    CFtpFileFind...............
      

  2.   

    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吧
    大概就这些了
      

  3.   

    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;}