Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
中心思想为,建立远程文件数据库(updates),记录需要升级的文件。
2、根据当前客户端版本,对比updates文件。
3、下载并验证
4、切换项目
S:新文件更新上次,并记录入数据库中。
1、创建updates 表
Dim Builder As New ADOXBuilder("") '要指定数据源名称
Dim tbl As ADOXTable
Builder.Open()
tbl = Builder.NewTable("updates") '创建表
With tbl
.AddColumn("版本号" ,ADOXType.DateTime)
.AddColumn("文件路径" ,ADOXType.Text)
.AddColumn("文件校验码" ,ADOXType.nvarchar,16)
End With
Builder.AddTable(tbl) '增加表
Builder.Close()
Syscmd.Project.Open(ProjectFile)
开发者:新文件上传服务器
Dim bbh As Date = Date.Now '设置本次上传版本号
'------------------------设置ftp服务器信息
Dim ftp1 As new ftpclient
ftp1.host=""
ftp1.Account = ""
ftp1.password = ""
'---------------------获取远程服务器历史文件校验码
Dim dt As datatable
Dim cmd As New SQLCommand
cmd.CSelect 文件路径,文件校验码 from updates"
dt = cmd.ExecuteReader()
Dim ftp_jym As String = dt.GetComboListString("文件校验码")
'output.show(ftp_jym) '获取服务器文件校验码
'==========================
For Each dir As String In FileSys.GetDirectories(ProjectPath & "\Publish") '遍历发布项目文件夹
Dim x As String = dir.Replace(ProjectPath & "\Publish\","") '获取目录名称
Output.Show(x)
If ftp1.DirectoryExists("/远程ftp更新目录/" & x) = False Then '如果不存在目录
ftp1.MakeDir("/远程ftp更新目录/" & x) '则创建目录
End If
For Each File As String In FileSys.GetFiles(dir) '遍历项目\ dir 目录下所有文件
Dim xy As String = File.Replace(dir ,"") '获取文件名称
Dim jym As String = CRCCheckFile(File) '获取文件校验码
If ftp_jym.Contains(jym) = False Then '对比服务器是否存在本校验码记录.
ftp1.Upload(file,"远程ftp更新目录/" & x & xy,True) '上传文件
cmd.CommandText = "INSERT INTO updates(版本号,文件路径,文件校验码) VALUES('" & bbh & "','" & x & xy & "','" & jym & "')" '向 updates 记录本次上传文件信息
cmd.ExecuteNonQuery
End If
Next
Next
For Each File As String In FileSys.GetFiles(ProjectPath & "\Publish") '遍历目录下所有文件
Dim xy As String = File.Replace(ProjectPath & "\Publish\","") '获取文件名称
Dim jym As String = CRCCheckFile(File) '获取文件校验码
If ftp_jym.Contains(jym) = False Then '对比服务器是否存在本校验码记录.
ftp1.Upload(file,"远程ftp更新目录/" & xy,True) '先上传文件
cmd.CommandText = "INSERT INTO updates(版本号,文件路径,文件校验码) VALUES('" & bbh & "','" & xy & "','" & jym & "')"
cmd.ExecuteNonQuery
End If
Next
output.show((Date.now - bbh).Totalseconds) '记录本次上传时间
顶你啊
争取弄个精华。
通过文件比对的方式,利弊都有。通过综合考虑,我还是选择这种方法来实现
优点:不存在隔代升级障碍。
缺点:远程文件未经打包,下载速度过慢。
嘿嘿。单个文件压缩,不知可行否
呵呵,设精