Question
August 11, 2007 at 04:43 AM
poppet_sundae

How to know copy file to FTP Server done successfully or failed??? Help!

by poppet_sundae . Updated 18 years, 11 months ago

Well, I’m using VB Script to automatically transfer file to FTP server and make a backup at local PC. The thing is no matter the file done the copy successfully or failed, the message always said it transfer successfully. There must be something wrong in the script, but I’m just not figure it out. Can anyone help me have a look?

Function UploadAllFiles(ByVal sFromLocalFolder, ByVal sArchiveLocalFolder, ByVal sFtpFolder, ByRef nNoOfFiles, ByRef nNoIfFailed)
nNoOfFiles = 0
nNoOfFailed = 0
Set f = fso.GetFolder(sFromLocalFolder)

Set fc = f.Files
For Each f1 in fc
If Right(f1.name,4) <> “.ftp” AND _
Right(f1.name,4) <> “.vbs” AND _
Right(f1.name,4) <> “.bat” And _
Right(f1.name,4) <> “.log” Then

sFilename = f1.name

If fso.FileExists(sFtpFolder &”\”& sFilename) Then
fso.DeleteFile(sFtpFolder &”\”& sFilename)
End If
If CopyOneFiletoFtp(sFromLocalFolder,sFtpFolder, sFilename) Then
nNoOfFiles = nNoOfFiles + 1
MoveOneLocalFile sFromLocalFolder,sArchiveLocalFolder,sFilename
Call WriteLog(“>>>>>” & sFilename & ” Transfered O.K.”)
Else
nNoOfFailed = nNoOfFailed + 1
Call WriteLog(“>>>>>” & sFilename & ” Transfer Failed”)
End If
End If
Next

End Function

Function CopyOneFiletoFtp(sLocalFolder,sFtpFolder,sFileName)
Dim fso, WshShell
Dim Counter

Set fso = CreateObject(“Scripting.FileSystemObject”)
Set WshShell = WScript.CreateObject(“WScript.Shell”)
Set ftpFile = fso.OpenTextFile(“uploadfile.ftp”, ForWriting, true)

ftpFile.WriteLine(sFTP)
ftpFile.WriteLine(“User ” & sUser)
ftpFile.WriteLine(sPass)

‘ Disable the Prompt Question
ftpFile.WriteLine(“prompt” )

‘ Goto Plant Folder
ftpFile.WriteLine(“cd ” & sFTPFolder)

‘ Copy all the files
ftpFile.WriteLine(“put ” & sLocalFolder & “\” & sFileName)
ftpFile.WriteLine(“bye”)
ftpFile.Close

Set CmdFile = fso.OpenTextFile(“upload.bat”, ForWriting, true)
”cmdFile.WriteLine(“cd ” & sToFolder)
CmdFile.WriteLine(“ftp -n -s:uploadFile.ftp” )

Counter = 0
Do While Counter < 5 Counter = Counter + 1 Call Waitfor(1) Loop CmdFile.Close Set CmdFile = Nothing Set ftpFile = Nothing nError = WshShell.Run("upload.bat", 2, true) If nError = 0 Then CopyOneFiletoFtp = True Else CopyOneFiletoFtp = False End If If fso.FileExists("upload.bat") Then fso.DeleteFile("upload.bat") End If If fso.FileExists("uploadfile.ftp") Then fso.DeleteFile("uploadfile.ftp") End If End Function 'Move One local file from Fromfolder to Tofolder Function MoveOneLocalFile(sFromFolder,sToFolder,sFileName) Dim fso, WshShell Set fso = CreateObject("Scripting.FileSystemObject") Set WshShell = WScript.CreateObject("WScript.Shell") If fso.FileExists(sToFolder & "\" & sFilename) Then fso.DeleteFile(sToFolder & "\" & sFilename) End If fso.MoveFile sFromFolder & "\" & sFilename , sToFolder & "\" & sFilename End Function

This discussion is locked

All Comments