Тема: AHK: Проверка скаченного файла
Как проверить полностью ли скачен файл через UrlDownloadToFile?
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Как проверить полностью ли скачен файл через UrlDownloadToFile?
Можно узнавать размер файла до скачивания и сравнивать его с размером после скачивания.
MsgBox % InternetFileGetSize( "ftp://ftp.winzip.com/testdown/testdown.htm" )
MsgBox % InternetFileGetSize( "http://ahkscript.org/favicon.ico" )
InternetFileGetSize( URL ) {
hMod := DllCall( "LoadLibrary", WStr, "wininet.dll" )
hIO := DllCall( "wininet\InternetOpenW"
, WStr, "Microsoft Internet Explorer"
, UInt, 4 ; INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY
, Int, 0, Int, 0, UInt, 0 )
hIU := DllCall( "wininet\InternetOpenUrlW"
, UInt, hIO, WStr, URL, Int, 0, Int, 0
, UInt, 0x84000000 ; INTERNET_FLAG_DONT_CACHE|INTERNET_FLAG_RELOAD
, UInt, 0 )
If ( hIO & hIU )
If ( SubStr( URL,1,4 ) = "ftp:" )
{
varSetCapacity(huint,4)
FileSize:=DllCall( "wininet\FtpGetFileSize", UInt,hIU,UInt,&huint,UInt)
FileSize := FileSize + (NumGet(huint)*(2**32))
}
Else DllCall( "wininet\HttpQueryInfoW"
, UInt, hIU
, UInt, 0x20000005 ; HTTP_QUERY_CONTENT_LENGTH|HTTP_QUERY_FLAG_NUMBER
, UIntP, FileSize, UIntP,4, Int,0 )
DllCall( "wininet\InternetCloseHandle", UInt, hIU )
DllCall( "wininet\InternetCloseHandle", UInt, hIO )
DllCall( "FreeLibrary", UInt, hMod )
Return FileSize
}а какие варианты есть еще?
А чем не устраивает этот?
Malcev устраивает, просто хотелось бы побольше примеров, думаю не только мне будет полезно.
Наверное MD5 можно как-то посчитать.
Malcev, в любом случае спасибо за подсказку.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться