在cq中对ftp进行操作:下载并删除多余文件并打包
作者 听雨屋檐人   查看 1139   发表时间 2007/11/18 10:45  【论坛浏览】
下面的代码是在vb中写的,所以id等关键词没有管理cq字段直接赋值,实现登陆ftp服务器,下载所需要的文件(我们打包的目录中的全部文件),然后删除多余文件,然后调用winrar进行打包动作。 xfflvufwie

xfflvufwie
这里没有写上传的ftp代码,上传的代码在cq版本管理系统已经写好了,可以参考下。xfflvufwie

xfflvufwie

写这个是为了办公自动化的实施,如果每次版本启用后都需要人为的跟催scm打包的话,费时费力,而且还容易出错,所以写了个脚本,在版本启用动作执行的同时执行:xfflvufwie

1.从ftp指定目录下载文件xfflvufwie

2.删减不需要的文件xfflvufwie

3.自动打包xfflvufwie

4.上传回ftp制定目录。xfflvufwie

这样四个步骤后让scm的工作更加简化。有更多时间去研究功能而不是花大量时间去做重复性劳动。xfflvufwie

xfflvufwie
xfflvufwie
代码
Const OREMOTE = "banben\" '首先定义ftp的目录和帐号密码以及地址 xfflvufwie
Const USERNAME = "ceshi" xfflvufwie
Const PASSWORD = "ceshi" xfflvufwie
Const HOSTNAME = "192.168.24.15" xfflvufwie
Dim sessionxfflvufwie
Dim fsoxfflvufwie
Dim ftpxfflvufwie
Dim oIDxfflvufwie
Dim oFileNamexfflvufwie
Dim kehuxfflvufwie
Dim banbenhaoxfflvufwie
Const local = "c:localtest\"xfflvufwie
Set fso = CreateObject("Scripting.FileSystemObject")xfflvufwie
Set ftp = CreateObject("ChilkatFTP.ChilkatFTP") xfflvufwie
If Not fso.FolderExists(local) Thenxfflvufwie
fso.CreateFolder(local)xfflvufwie
End Ifxfflvufwie
ftp.Username = USERNAMExfflvufwie
ftp.Password = PASSWORDxfflvufwie
ftp.Hostname = HOSTNAMExfflvufwie
OK = ftp.Connect '链接ftpxfflvufwie
If OK <> 1 Thenxfflvufwie
WScript.Echo ftp.LastErrorTextxfflvufwie
End Ifxfflvufwie
ftp.ChangeRemoteDir OREMOTE ' 开始进入ftp的制定目录。xfflvufwie
oID = "K200" '这里的字段本来应该是取cq里面的某个字段的值,由于在外部调试就直接赋值了。xfflvufwie
' ftp.CreateRemoteDir oID ' 如果需要新建就用这句,如果是已有的目录来变更当前路的话就用下句。xfflvufwie
ftp.ChangeRemoteDir oIDxfflvufwie
kehu = "K200"xfflvufwie
' ftp.CreateRemoteDir kehuxfflvufwie
ftp.ChangeRemoteDir kehuxfflvufwie
banbenhao = "K200_00B_V0_4_3"xfflvufwie
' ftp.CreateRemoteDir banbenhaoxfflvufwie
ftp.ChangeRemoteDir banbenhao xfflvufwie
king = ftp.MGetFiles("*.*", local) '用mgetfiles来获得ftp指定目录中的所有文件,copy到上面定义的目录中。xfflvufwie
If king <> 1 Thenxfflvufwie
WScript.Echo ftp.LastErrorTextxfflvufwie
End Ifxfflvufwie
ftp.Disconnectxfflvufwie
fso.DeleteFile local & "*.html" ' 删除不需要的东西!xfflvufwie
fso.DeleteFile local & "*con*.txt" ' 删除不需要的东西!xfflvufwie
Dim Rarexexfflvufwie
Dim Source xfflvufwie
Dim Target xfflvufwie
Dim FileStringxfflvufwie
Dim Shellxfflvufwie
dim RetCodexfflvufwie
Rarexe="C:WinRAR.exe" '这里调用winrarxfflvufwie
Source="C:localtest*.*" xfflvufwie
Target="C:test.rar" xfflvufwie
FileString = Rarexe & " a " & Target & " " & Source ' 这里开始压缩打包。xfflvufwie
Set Shell = CreateObject("WScript.Shell")xfflvufwie
RetCode = Shell.Run(FileString,1, True)
xfflvufwie
[ 本帖最后由 听雨屋檐人 于 2007-12-11 14:42 编辑 ]

序号 评论者 共有评论 6   【论坛浏览】  【发表评论】 评论时间
1 yunshan 回复 楼主 的帖子
听雨,可以在代码中适当的加一些注释,那样将是一篇好的技术文章^_^
2007/11/19 12:26
2 懂你 等听雨在代码中加上注释,并解释一下大概的设计思想后再加精华。

加油啊,听雨。
2007/12/8 23:18
3 听雨屋檐人 哈哈!前段时间在忙于公司的脚本改进,没写注释,刚刚补上! 2007/12/11 14:35
4 ljs53 很赞同听雨这种可以通过一些工具把我们SCM的一些工作简单化
减轻我们的工作负担
2007/12/13 12:11
5 yunshan 给个小建议:
在使用完一些对象后,就将其释放,否则如果操作过频繁,就容易过度的消耗内存。
如Set FSO = Nothing
2007/12/13 12:18
6 听雨屋檐人 谢谢yunshan,
在上传后做了释放资源的动作!
2007/12/13 13:18
 共有评论数 6  每页显示 10
页码 1/1  |<  <<   1   >>  >|