ftp.au3似乎实现不了该功能,代码如下:
;===============================================================================
;
; 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): DllCall, 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 $ai_InternetOpen = DllCall('wininet.dll', '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
Return $ai_InternetOpen[0]
EndFunc ;==> _FTPOpen()
;===============================================================================
;
; Function Name: _FTPConnect()
; Description: Connects to an FTP server.
; Parameter(s): $l_InternetSession - The Long 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): DllCall, wininet.dll
; Return Value(s): On Success - Returns an indentifier.
; On Failure - 0 and sets @ERROR
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)
Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, '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
Return $ai_InternetConnect[0]
EndFunc ;==> _FTPConnect()
;===============================================================================
;
; Function Name: _FTPPutFile()
; Description: Puts an file on an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $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($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0)
Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, '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: _FTPDelFile()
; Description: Delete an file from an FTP server.
; Parameter(s): $l_FTPSession - The Long from _FTPConnect()
; $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($l_FTPSession, $s_RemoteFile)
Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpDeleteFile', 'long', $l_FTPSession, '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 - The Long from _FTPConnect()
; $s_Existing - The old file name.
; $s_New - The new file name.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPRenameFile($l_FTPSession, $s_Existing, $s_New)
Local $ai_FTPRenameFile = DllCall('wininet.dll', 'int', 'FtpRenameFile', 'long', $l_FTPSession, '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 - The Long from _FTPConnect()
; $s_Remote - The file name to be deleted.
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPMakeDir($l_FTPSession, $s_Remote)
Local $ai_FTPMakeDir = DllCall('wininet.dll', 'int', 'FtpCreateDirectory', 'long', $l_FTPSession, '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 - The Long from _FTPConnect()
; $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($l_FTPSession, $s_Remote)
Local $ai_FTPDelDir = DllCall('wininet.dll', 'int', 'FtpRemoveDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
If @error OR $ai_FTPDelDir[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPDelDir[0]
EndFunc ;==> _FTPDelDir()
;===============================================================================
;
; Function Name: _FTPClose()
; Description: Closes the _FTPOpen session.
; Parameter(s): $l_InternetSession - The Long from _FTPOpen()
; Requirement(s): DllCall, wininet.dll
; Return Value(s): On Success - 1
; On Failure - 0
; Author(s): Wouter van Kesteren
;
;===============================================================================
Func _FTPClose($l_InternetSession)
Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
If @error OR $ai_InternetCloseHandle[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetCloseHandle[0]
EndFunc ;==> _FTPClose() |