pConnect->SetCurrentDirectory( "C:\\FilesToSendToServer" ); //Need this set on client, i believe currently setting on server.
CFtpFileFind finder(pConnect);
finder.FindFile( "*", INTERNET_FLAG_DONT_CACHE | INTERNET_FLAG_EXISTING_CONNECT );
finder.FindNextFile();
CString filename = finder.GetFileName(); //finds the only file in that directory - test.txt
pConnect->PutFile( filename, "C:\\FilesReceived\\FILE_SENT_FROM_CLIENT.txt", FTP_TRANSFER_TYPE_BINARY, 1 )) //filename set to test.txt correctly
На клиенте у меня есть каталог FilesToSendToServer
с одним тестовым файлом - "test.txt"
У меня также есть рабочий каталог этого приложения на клиенте - C\uploadApp\
Приведенный выше код корректно устанавливает текущий каталог и «находит» тестовый файл.
Однако, когда PutFile
выполняется с правильно заданным параметром имени файла (test.txt), functin возвращает файл ошибки, не найденный.
Так что в качестве теста я помещаю копию теста.txt в рабочем каталоге приложений uploadApp
и он отправил файл на сервер.
Почему файл должен находиться в рабочем каталоге для отправки, если активный объект установлен в объекте CFtpConnection?
(Означает ли это для любого файла, который я хочу отправить изклиент, я должен скопировать его в каталог приложения?)
Спасибо.
РЕДАКТИРОВАТЬ
Похоже SetCurrentDirectory
звонки FtpSetCurrentDirectory
, которые
определить текущий рабочий каталог удаленного сайта
Так что для GET это имеет смысл ... есть ли альтернативная функция для PUT - для установки активного каталогалокальной машины?(К вашему сведению - Невозможно провести различие между удаленным каталогом на сервере, который тестирует на той же машине ... если тестирование на целевом объекте SetCurrentDirectory завершится неудачно, как это происходит на сервере ... Я предполагаю)