| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 
 |  
If UploadByFTP("test.xls" , "www/pro" , "test.xls")  Then
	Msgbox "Upload du fichier OK"
Else
	Msgbox "probleme"
End If
 
If GetListFTP( "www/pro","listftp.txt")  Then
	Msgbox "Liste du repertoire OK"
Else
	Msgbox "probleme"
End If
 
If DownloadByFTP("test.xls" , "www/pro" , "test2.xls")  Then
	Msgbox "Download OK"
Else
	Msgbox "probleme"
End If
 
 
Function UploadByFTP(ByVal FichierLocal, ByVal Repertoire, ByVal FichierFTP)
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f_cmd, f_ret
 
    FTP = "ftp.site.com"
    Login = "login"
    Pass = "pass"
 
    Set fso = CreateObject("Scripting.FileSystemObject")
 
    FichierCommandeFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
    FichierRetourFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
 
    Set f_cmd = fso.OpenTextFile(FichierCommandeFTP, ForWriting, True)	
    f_cmd.Write "OPEN " & FTP & vbCrLf
    f_cmd.Write "" & Login & vbCrLf & Pass & vbCrLf
    f_cmd.Write "cd " & Repertoire & vbCrLf
    f_cmd.Write "put " & FichierLocal & " " & FichierFTP & vbCrLf
    f_cmd.Write "quit"
    f_cmd.Close
 
	Set WSHShell = CreateObject("WScript.Shell")	
    WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True
 
    UploadByFTP = False
    Set f_ret = fso.OpenTextFile(FichierRetourFTP, ForReading)
	while Not f_ret.AtEndOfStream And UploadByFTP = False
		iF Left(f_ret.ReadLine,4) = "226 " Then
			UploadByFTP = True
		End If
    Wend
    f_ret.close
 
    fso.DeleteFile FichierCommandeFTP
    fso.DeleteFile FichierRetourFTP
 
    Set WSHShell = Nothing
    Set fso      = Nothing
    Set f_cmd    = Nothing
    Set f_ret    = Nothing
End Function
 
Function DownloadByFTP(ByVal FichierFTP, ByVal Repertoire, ByVal FichierLocal)
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f_cmd, f_ret
 
    FTP = "ftp.site.com"
    Login = "login"
    Pass = "pass"
 
    Set fso = CreateObject("Scripting.FileSystemObject")
 
    FichierCommandeFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
    FichierRetourFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
 
    Set f_cmd = fso.OpenTextFile(FichierCommandeFTP, ForWriting, True)	
    f_cmd.Write "OPEN " & FTP & vbCrLf
    f_cmd.Write "" & Login & vbCrLf & Pass & vbCrLf
    f_cmd.Write "CD " & Repertoire & vbCrLf
    f_cmd.Write "GET " & FichierFTP & " " & FichierLocal & vbCrLf
    f_cmd.Write "quit"
    f_cmd.Close
 
	Set WSHShell = CreateObject("WScript.Shell")	
    WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True
 
    DownloadByFTP = False
    Set f_ret = fso.OpenTextFile(FichierRetourFTP, ForReading)
	while Not f_ret.AtEndOfStream And DownloadByFTP = False
		iF Left(f_ret.ReadLine,4) = "226 " Then
			DownloadByFTP = True
		End If
    Wend
    f_ret.close
 
    fso.DeleteFile FichierCommandeFTP
    fso.DeleteFile FichierRetourFTP
 
    Set WSHShell = Nothing
    Set fso      = Nothing
    Set f_cmd    = Nothing
    Set f_ret    = Nothing
End Function
 
Function GetListFTP(ByVal Repertoire,ByVal FichierListe)
    Const ForReading = 1, ForWriting = 2, ForAppending = 8
    Dim fso, f_cmd, f_ret
 
    FTP = "ftp.site.com"
    Login = "login"
    Pass = "pass"
 
    Set fso = CreateObject("Scripting.FileSystemObject")
 
    FichierCommandeFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
    FichierRetourFTP = fso.GetSpecialFolder(2).path & "\" & fso.GetTempName
 
    Set f_cmd = fso.OpenTextFile(FichierCommandeFTP, ForWriting, True)	
    f_cmd.Write "OPEN " & FTP & vbCrLf
    f_cmd.Write "" & Login & vbCrLf & Pass & vbCrLf
    f_cmd.Write "cd " & Repertoire & vbCrLf
    f_cmd.Write "ls * " & FichierLocal & " " & FichierListe & vbCrLf
    f_cmd.Write "quit"
    f_cmd.Close
 
    Set WSHShell = CreateObject("WScript.Shell")	
    WSHShell.Run "cmd /c ftp.exe -s:" & FichierCommandeFTP & " > " & FichierRetourFTP, 0 , True
 
    GetListFTP = False
    Set f_ret = fso.OpenTextFile(FichierRetourFTP, ForReading)
	while Not f_ret.AtEndOfStream And GetListFTP = False
		iF Left(f_ret.ReadLine,4) = "226 " Then
			GetListFTP = True
		End If
    Wend
    f_ret.close
 
    fso.DeleteFile FichierCommandeFTP
    fso.DeleteFile FichierRetourFTP
 
    Set WSHShell = Nothing
    Set fso      = Nothing
    Set f_cmd    = Nothing
    Set f_ret    = Nothing
End Function |