Загрузить каталог - PullRequest
       1

Загрузить каталог

0 голосов
/ 26 февраля 2012

Как я могу загрузить каталог, используя функцию 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;
}

1 Ответ

0 голосов
/ 26 февраля 2012

Вы не можете напрямую загружать каталоги; вам нужно создать каталог с помощью FtpCreateDirectory(), затем выполнить итерацию по всем файлам в вашем локальном каталоге и вызвать FtpPutFile() для каждого из них.

Если вам нужен способ получения списка файлов в каталоге, вы можете использовать Boost.Filesystem . Ищите классы directory_iterator и recursive_directory_iterator.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...