用CQ实现一个功能,从FTP 上下载文件,然后去除不需要的文件后打包再放回FTP
调用了
http://www.chilkatsoft.com/downloads.asp的Chilkat's (Free) FTP ActiveX插件。
然后写了代码:
Const OREMOTE = "banben\" ' 首先定义ftp的目录和帐号密码以及地址
Const USERNAME = "***"
Const PASSWORD = "***"
Const HOSTNAME = "**"
Dim session
Dim fso
Dim ftp
Dim oID
Dim oFileName
Dim kehu
Dim banbenhao
Const local = "C:\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ftp = CreateObject("ChilkatFTP.ChilkatFTP")
' If Not fso.FolderExists("C:\")
' Then fso.CreateFolder("C:\")
' End If
ftp.Username = USERNAME
ftp.Password = PASSWORD
ftp.Hostname = HOSTNAME
OK = ftp.Connect ' 链接ftp
ftp.ChangeRemoteDir OREMOTE ' 开始进入ftp的制定目录。
oID = GetfieldValue("project").GetValue ' 这里的字段本来应该是取cq里面的某个字段的值,由于在外部调试就直接赋值了
ftp.CreateRemoteDir oID ' 如果需要新建就用这句,如果是已有的目录来变更当前路的话就用下句
ftp.ChangeRemoteDir oID
kehu = GetfieldValue("kehudaihao").GetValue
ftp.CreateRemoteDir kehu
ftp.ChangeRemoteDir kehu
banbenhao = GetfieldValue("banben").GetValue
ftp.CreateRemoteDir banbenhao
ftp.ChangeRemoteDir banbenhao
king = ftp.MGetFiles("*.*", local) ' 用mgetfiles来获得ftp指定目录中的所有文件,copy到上面定义的目录中
ftp.Disconnect
fso.DeleteFile local & "*.html" ' 删除html文件,主要是软件版本报告
fso.DeleteFile local & "*.xls" ' 删除excle文件,主要是测试报告
fso.DeleteFile local & "*.doc" ' 删除word文件,主要是软件版本说明书
fso.DeleteFile local & "*.rar" ' 删除以前压缩的文件
fso.DeleteFile local & "*cs_*.txt" ' 删除config spec纪录文件
Dim Rarexe ' WinRar执行文件地址
Dim Source ' 压缩前原始文件
Dim Target ' 压缩后目标文件
Dim FileString ' Shell指令中的字符串
Dim Shell
Dim RetCode
Rarexe="C:\WinRAR.exe" ' 这里调用winrar。注意文件的存在性
Source="C:\*PCB01*.bin c:\BPLGUInfoCustom* c:\scat*.txt" ' 压缩文件原始位置
Target="C:\"&banbenhao&"" ' 压缩文件目标位置
FileString = Rarexe & " m " & " -m5 " & Target & " " & Source ' 这里开始压缩打包,m是删除文件压缩,-m5是最好的压缩方式
Set Shell = CreateObject("WScript.Shell")
RetCode = Shell.Run(FileString,1, True)
ftp.Username = USERNAME
ftp.Password = PASSWORD
ftp.Hostname = HOSTNAME
OK = ftp.Connect
ftp.ChangeRemoteDir OREMOTE
oID = GetfieldValue("project").GetValue
ftp.CreateRemoteDir oID
ftp.ChangeRemoteDir oID
kehu = GetfieldValue("kehudaihao").GetValue
ftp.CreateRemoteDir kehu
ftp.ChangeRemoteDir kehu
banbenhao = GetfieldValue("banben").GetValue
ftp.CreateRemoteDir banbenhao
ftp.ChangeRemoteDir banbenhao
oFileName = fso.Getfile ("C:\"&banbenhao&".rar")
oAttachment.Load oFileName
fso.CopyFile oAttachment.FileName, OTEMP
OK = ftp.PutFile(oFileName, fso.GetFileName(oFileName))
ftp.Disconnect
Set oAttachments = Nothing
Set oAttachField = Nothing
Set oAttachFields = Nothing
Set ftp = Nothing
Set fso = Nothing
Set session = Nothing
运行发现,打包前的任务全部执行了,但没执行打包过程,同时报错:
调试了很久,却一直没解决
不知道问题出在哪里,请高人帮忙!