Здравствуйте
Ни разу в жизни мне не удалось написать код и чтобы не было глобального затыка, который мне бы не пришлось решать через форумы, и вот я здесь. Первая же мини программа (не считая конечно же HellowWorld) не заработала, а всего то надо файл с ftp скачать, неужели у меня руки совсем не из того места растут!?
СУТЬ:
ОС: Win7 x32 - виртуальная машина VMware, сетевой адаптер в режиме Bridge
IE: 8.0.7601итд
AutoIt: 3.4.1
для начала воспользовался командами InetGet и InetGetSize и примерами из мануала
результат ноль, ни файла, ни его размера. Хотя, если вставить URL до какой-нибудь картинки с любого сайта, все замечательно работает
Порылся у Вас на форуме, отыскал другой способ ( _FTP_FileGet), взял рабочий (не у меня :'( ) пример
НО, результат тот же - по нулям.
Нашел пример кода с дебаггером
Вот что он показал
я так понимаю, все в порядке, так почему же мне даже размер файла не посмотреть?
Вот скажите мне люди, неужели я настолько криворук, ну как так может быть!? я конечно понимаю, что не внимательность мой конек, но это уже слишком!
PS: в реале сервер с авторизацией, но, как видите, с открытых серверов тоже не качает, хотя, если вставить прямую ссылку на файл в браузер, он замечательно все качает. Скомпилированный exe-шник на другой машине тоже не срабатывает.
Ни разу в жизни мне не удалось написать код и чтобы не было глобального затыка, который мне бы не пришлось решать через форумы, и вот я здесь. Первая же мини программа (не считая конечно же HellowWorld) не заработала, а всего то надо файл с ftp скачать, неужели у меня руки совсем не из того места растут!?
СУТЬ:
ОС: Win7 x32 - виртуальная машина VMware, сетевой адаптер в режиме Bridge
IE: 8.0.7601итд
AutoIt: 3.4.1
для начала воспользовался командами InetGet и InetGetSize и примерами из мануала
Код:
#include <InetConstants.au3>
;~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
InetGet('ftp://ftp.daper.net/pub/soft/moc/stable/moc-1.1.0.tar.gz','c:\moc-1.1.0.tar.gz',1,0)
Example()
Func Example()
; Retrieve the size of the file. The option of 'get the file from the local cache' has been selected.
Local $iSize = InetGetSize("ftp://ftp.daper.net/pub/soft/moc/stable/moc-1.1.0.tar.gz",1)
ConsoleWrite($iSize & @CRLF)
EndFunc ;==>Example
результат ноль, ни файла, ни его размера. Хотя, если вставить URL до какой-нибудь картинки с любого сайта, все замечательно работает
Порылся у Вас на форуме, отыскал другой способ ( _FTP_FileGet), взял рабочий (не у меня :'( ) пример
Код:
#include <FTPEx.au3>
Local $sServer = 'ftp.daper.net'
Local $sUsername = ''
Local $sPass = ''
Local $hOpen = _FTP_Open('MyFTP Control')
Local $hConn = _FTP_Connect($hOpen, $sServer, $sUsername, $sPass)
Local $Ftpg = _FTP_FileGet($hConn, "/pub/soft/moc/stable/moc-1.1.0.tar.gz", "c:\moc-1.1.0.tar.gz")
Local $iSize = _FTP_FileGetSize($hConn,"/pub/soft/moc/stable/moc-1.1.0.tar.gz")
ConsoleWrite($iSize & @CRLF)
Local $iFtpc = _FTP_Close($hConn)
Local $iFtpo = _FTP_Close($hOpen)
НО, результат тот же - по нулям.
Нашел пример кода с дебаггером
Код:
#include <FTPEx.au3>
#include <Debug.au3>
_DebugSetup(StringTrimRight(@scriptname, 4) & ' example', True)
Local $server = 'ftp.daper.net'
Local $username = ''
Local $pass = ''
Local $Open = _FTP_Open('MyFTP Control')
Local $Callback = _FTP_SetStatusCallback($Open, 'FTPStatusCallbackHandler')
Local $Conn = _FTP_Connect($Open, $server, $username, $pass, 0, $INTERNET_DEFAULT_FTP_PORT, $INTERNET_SERVICE_FTP, 0, $Callback)
Local $Ftpc = _FTP_Close($Open)
Func FTPStatusCallbackHandler($hInternet, $dwContent, $dwInternetStatus, $lpvStatusInformation, $dwStatusInformationLength)
#forceref $hInternet, $dwContent
If $dwInternetStatus = $INTERNET_STATUS_REQUEST_SENT Or $dwInternetStatus = $INTERNET_STATUS_RESPONSE_RECEIVED Then
Local $Size, $iBytesRead
$Size = DllStructCreate('dword')
_WinAPI_ReadProcessMemory(_WinAPI_GetCurrentProcess(), $lpvStatusInformation, DllStructGetPtr($Size), $dwStatusInformationLength, $iBytesRead)
_DebugOut(_FTP_DecodeInternetStatus($dwInternetStatus) & ' | Size = ' & DllStructGetData($Size, 1) & ' Bytes Bytes read = ' & $iBytesRead)
Else
_DebugOut(_FTP_DecodeInternetStatus($dwInternetStatus))
EndIf
EndFunc
Вот что он показал
Код:
AutoIt: 3.3.12.0, AdminMode, OS: WIN_7/SP1/X86, OSLang: 0419, Keyboard: 00000409, CPUArch: X64, Script: C:\Users\localadmin\Desktop\ftp.au3
Handle created
Resolving name ...
Name resolved
Connecting to server ...
Connected to server
Receiving response ...
Response received | Size = 65 Bytes Bytes read = 4
Sending request ...
Request sent | Size = 16 Bytes Bytes read = 4
Receiving response ...
Response received | Size = 75 Bytes Bytes read = 4
Sending request ...
Request sent | Size = 12 Bytes Bytes read = 4
Receiving response ...
Response received | Size = 50 Bytes Bytes read = 4
Closing connection ...
Connection closed
Handle closing ...
>>>>>> Please close the "Report Log Window" to exit <<<<<<<
Вот скажите мне люди, неужели я настолько криворук, ну как так может быть!? я конечно понимаю, что не внимательность мой конек, но это уже слишком!
PS: в реале сервер с авторизацией, но, как видите, с открытых серверов тоже не качает, хотя, если вставить прямую ссылку на файл в браузер, он замечательно все качает. Скомпилированный exe-шник на другой машине тоже не срабатывает.