Копирование файла с ftp

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

Копирование файла с ftp

Сообщение nikola20 » 20.06.2006 (Вт) 16:06

Подскажите какой нибудь код для реализации данной процедуры.

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 16:13

Ну это уже совсем! FAQ уже красным цветом выделили, но люди все равно ленятся туде смотреть. Кроме этого, поиск по слову ftp. Первая страница дает нужный результат. Вот ссылка.

http://bbs.vbstreets.ru/viewtopic.php?t=7720
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

Сообщение nikola20 » 20.06.2006 (Вт) 16:39

мне не совсем понятно. Есть ftp сервер с сети предприятия. Доступ только по ftp. Необходимо еждневно скачивать архивные файлы и желательно автоматически (по таймеру). Хочу состряпать код на VB, который бы решал эту задачу ( тем более это только часть всей процедуры, которая должна быть выполнена)

RayShade
Scarmarked
Scarmarked
Аватара пользователя
 
Сообщения: 5511
Зарегистрирован: 02.12.2002 (Пн) 17:11
Откуда: Russia, Saint-Petersburg

Сообщение RayShade » 20.06.2006 (Вт) 16:50

Поищи по форуму urldownloadtofile

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 20.06.2006 (Вт) 16:58

или уж сразу качалку в кирпичах...
Изображение

Oxygen
Белая и пушистая
Белая и пушистая
Аватара пользователя
 
Сообщения: 1314
Зарегистрирован: 15.07.2003 (Вт) 7:14
Откуда: Москва

Сообщение Oxygen » 20.06.2006 (Вт) 17:00

Как вариант использовать Microsoft Internet Transfer Control. В MSDN хорошее описание и примеры.
Процедура клонирования завершена.
Коррекция имплантированного сознания соответствует принятым алгоритмам.
Уникальный идентификатор скопирован в чип временного паспорта.
Активация прав гражданина ожидается в течение 24 часов

nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

Сообщение nikola20 » 21.06.2006 (Ср) 11:00

Нашел в MSDN и переделал под себя следующий код:
Код: Выделить всё
Const FTP_TRANSFER_TYPE_UNKNOWN = &H0
Const FTP_TRANSFER_TYPE_ASCII = &H1
Const FTP_TRANSFER_TYPE_BINARY = &H2
Const INTERNET_DEFAULT_FTP_PORT = 21               ' default for FTP servers
Const INTERNET_SERVICE_FTP = 1
Const INTERNET_FLAG_PASSIVE = &H8000000            ' used for FTP connections
Const INTERNET_OPEN_TYPE_PRECONFIG = 0                    ' use registry configuration
Const INTERNET_OPEN_TYPE_DIRECT = 1                        ' direct to net
Const INTERNET_OPEN_TYPE_PROXY = 3                         ' via named proxy
Const INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY = 4   ' prevent using java/script/INS
Const MAX_PATH = 260

Private Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUserName As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
Private Declare Function FtpSetCurrentDirectory Lib "wininet.dll" Alias "FtpSetCurrentDirectoryA" (ByVal hFtpSession As Long, ByVal lpszDirectory As String) As Boolean

Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hConnect As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Long, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByRef dwContext As Long) As Boolean

Const PassiveConnection As Boolean = True

Private Sub Form_Load()
    'KPD-Team 2000
    'URL: http://www.allapi.net
    'E-Mail: KPDTeam@allapi.net
    Dim hConnection As Long, hOpen As Long, sOrgPath  As String
    'open an internet connection
    hOpen = InternetOpen("API-Guide sample program", INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)
    'connect to the FTP server
    hConnection = InternetConnect(hOpen, "10.32.0.103", INTERNET_DEFAULT_FTP_PORT, "", "", INTERNET_SERVICE_FTP, IIf(PassiveConnection, INTERNET_FLAG_PASSIVE, 0), 0)
    'set the current directory
    FtpSetCurrentDirectory hConnection, "backup/Export/"
    'retrieve the file from the FTP server
    FtpGetFile hConnection, "060606.rar", "c:\060606.rar", False, 0, FTP_TRANSFER_TYPE_UNKNOWN, 0
    'close the FTP connection
    InternetCloseHandle hConnection
    'close the internet connection
    InternetCloseHandle hOpen
End Sub

Однако: файл 060606.rar создается, но это не тот файл который на сервере. Грубо говоря - пустой. Подскажите, где я не так сделал....

nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

Сообщение nikola20 » 21.06.2006 (Ср) 14:14

В дополнение к прошлому сообщению:
файл не совсем пустой его объем 47 байт , а содержимое:
GIF89a и еще какая-то лабуда из символов.
Кто может сказать , что все таки происходит?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.06.2006 (Ср) 14:27

nikola20
Ну значит часть файла всё таки скачивается... а GIF89a

а это хеадер ГИФозного формата
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 21.06.2006 (Ср) 14:29

Укажи FTP_TRANSFER_TYPE_BINARY.
Lasciate ogni speranza, voi ch'entrate.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 21.06.2006 (Ср) 14:30

nikola20 писал(а):Нашел в MSDN и переделал под себя следующий код:
Код: Выделить всё
    'KPD-Team 2000
    'URL: http://www.allapi.net
    'E-Mail: KPDTeam@allapi.net


Да уж странный у MSDN сайт какой-то. allapi.net . Больше на АПИГуиду похоже :lol:
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

nikola20
Новичок
Новичок
 
Сообщения: 44
Зарегистрирован: 20.01.2006 (Пт) 13:29

Сообщение nikola20 » 21.06.2006 (Ср) 17:10

FTP_TRANSFER_TYPE_BINARY - подходит. болшое спасибо.

Конь
Постоялец
Постоялец
 
Сообщения: 650
Зарегистрирован: 02.06.2006 (Пт) 6:49
Откуда: г. Красноярск

Сообщение Конь » 21.06.2006 (Ср) 18:56

А зачем париться?
Можно посмотреть в хелпе по VB использование Internet Transfer, там код строчек на 5-10!
Подпись находится в стадии разработки...


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63

    TopList