2012-02-26 89 views
0

如何上传使用FtpPutFile功能或者这一切的目录的目录是我的代码:上传目录

void FileSubmit(path ToUpload) 
{ 
    HINTERNET hInternet; 
    HINTERNET hFtpSession; 
    hInternet = InternetOpen(NULL,INTERNET_OPEN_TYPE_DIRECT,NULL,NULL,0); 

    if (hInternet == NULL) cout << ("No Internet Connection..\n"); 
    else cout << ("Internet Connection Established\n"); 

    hFtpSession = InternetConnect(hInternet,"host",INTERNET_DEFAULT_FTP_PORT, "user","pass", INTERNET_SERVICE_FTP, INTERNET_FLAG_PASSIVE,0); 
    if (!hFtpSession) cout << ("Error in the FTP connection..\n"); 
    else 
    { 
     cout <<("FTP Connection Established!\n"); 
     FtpPutFile(hFtpSession, "D://test//*.doc", ToUpload.string().c_str(), FTP_TRANSFER_TYPE_ASCII, INTERNET_FLAG_PASSIVE); 
     if (!FtpPutFile(hFtpSession, "D://test//*.doc", ToUpload.string().c_str(), FTP_TRANSFER_TYPE_ASCII, INTERNET_FLAG_PASSIVE)) 
     cout <<("File Transfer Failed..\n"); 
     else cout << ("The file was sent..\n"); 
     InternetCloseHandle(hFtpSession); 
     InternetCloseHandle(hInternet); 
    } 
} 


int main() 
{ 
FileSubmit(destination); 
return 0; 
} 

回答

0

你不能“上传”目录直接;您需要创建FtpCreateDirectory()的目录,然后遍历本地目录中的所有文件,并在每个文件中调用FtpPutFile()

如果您需要一种获取目录中文件列表的方法,您可以使用Boost.Filesystem。寻找directory_iteratorrecursive_directory_iterator类。

+0

我不需要在主机上创建一个目录,但是如何迭代本地目录中的所有文件 – pourjour 2012-02-26 01:15:58

+0

@pourjour我已经更新了我的答案。如果你愿意的话,在Windows API中会有一些东西需要做,但是你必须自己来看看。 – spencercw 2012-02-26 01:17:14