Я пытаюсь написать приложение, которое работает с файлами на FTP-сервере. Мне нужно открыть несколько файлов в одном соединении FTP. я сделаю это
CInternetSession session(_T("Session1"));
CFtpConnection* pConnect = NULL;
CInternetFile* pFile1;
CInternetFile* pFile2;
pConnect = session.GetFtpConnection(_T("10.0.172.113"), _T("user11"), _T("12345"));
pFile1 = pConnect->OpenFile(L"folder1\\1.txt",GENERIC_WRITE,FTP_TRANSFER_TYPE_BINARY);
pFile2 = pConnect->OpenFile(L"folder1\\2.txt",GENERIC_READ,FTP_TRANSFER_TYPE_BINARY);
pConnect->Close();
Но открытие 2.txt выкинуло исключение.
Есть ли способ открыть два файла без создания нового соединения FTP?
Нет, ни за что http://msdn.microsoft.com/library/vstudio/1st6z7sc.aspx:
После вызова OpenFile и до вызова CInternetConnection :: Close,
приложение может вызывать только CInternetFile :: Read,
CInternetFile :: Записать, CInternetConnection :: Закрыть или
CFtpFileFind :: FindFile. Вызов других функций FTP для того же FTP
сеанс потерпит неудачу и установит код ошибки на FTP_ETRANSFER_IN_PROGRESS.
Других решений пока нет …