![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| XavierElf |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Написал я значит DLL для обмена с FTP серверами и при отладке столкнулся с проблемами:
есть такая функция в DLL:
Клиент на Delphi вызывает её так:
В итоге выполнения программы получаем: 1 запуск программы: Все файлы отправлены. 2 запуск программы: Ни один файл не отправляется, однако первый файл на сервере очищается. 3 запуск программы: 1-й файл отправляется, остальные нет. ... далее повторяются 2-й и 3-й запуски. Подскажите, как сделать чтобы файл нормально перезаписывался? --------------------
Даешь открытые исходники! |
||||
|
|||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
перед записью файла вызывай FtpOpenFile() -- провериш есть файл или нету. если есть -- вызывай
FtpDeleteFile() -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
хмм... а не подскажете, как удалить файл, когда он открыт функцией FtpOpenFile()... точнее как закрыть открытый файл? я попробовал сделать, как Вы сказали, однако FtpDeleteFile() возвращает постоянно FALSE, так как файл в это время открыт...
--------------------
Даешь открытые исходники! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
InternetCloseHandle()
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Сделал таким образом, однако все равно не получается... Подскажите, что не так?
--------------------
Даешь открытые исходники! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
дык что именно не получается? что функция возвращает? что GetLastError() говорит?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Исключение возникает в функции
То есть выскакивает мессага "Не удалось загрузить файл на сервер". По сути файл который пытаюсь удалить - не удаляется, однако функция удаления возвращает TRUE. Не пойму, почему... А при отправке следующих ф-лов выдает вообще - "Не удалось установить директорию"... --------------------
Даешь открытые исходники! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
стоп. так удалить не получается или залить? в любом случае что GetLastError() говорит? -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Так, GetLastError возвращает код 12002 в функции FtpPutFile(...) что обозначает ERROR_INTERNET_TIMEOUT. Почему - не понятно...
--------------------
Даешь открытые исходники! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
странно... а какой-нить FTP-клиент удалить этот же файл может?
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Удалить может. Пробовал тоталом. Однако если в тотале попробовать перезаписать - тоже повисает... Непонятно...
--------------------
Даешь открытые исходники! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
жначит ты перед перезаписью (FtpPutFile()) файл не удаляеш...
-------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Млин, ну я же привел код функции отправки файлов на FTP и там должна указана функция, удаляющая файл, если он существует, только она почему-то не удаляет его...
Добавлено @ 18:12 Сейчас выдает расширенный код интернет ошибки 12003 -> Код 425 Can't build data connection... --------------------
Даешь открытые исходники! |
|||
|
||||
| _hunter |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 8564 Регистрация: 24.6.2003 Где: Europe::Ukraine:: Kiev Репутация: 13 Всего: 98 |
так может FtpOpenFile() почему-то не срабатывает. или FtpDeleteFile().
после удаления еще раз FtpOpenFile() вызови -- что будет? да и просто по коду отладчиком пройдись (а не по MessageBox' ам ориентируйся)... -------------------- Tempora mutantur, et nos mutamur in illis... |
|||
|
||||
| XavierElf |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 200 Регистрация: 24.1.2007 Где: г. Тверь Репутация: нет Всего: 1 |
Так, при отправке второго файла выдает ошибку. Используя InternetGetLastResponseInfo(...) получил:
Чёт непонятно, что за тип I и почему при удачной команде PORT возникает ошибка... Это сообщение отредактировал(а) XavierElf - 25.1.2007, 18:52 --------------------
Даешь открытые исходники! |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |