Foxtable(狐表)用户栏目专家坐堂 → 客户机根据服务机的变化升级如何设计呢?


  共有12417人关注过本帖树形打印复制链接

主题:客户机根据服务机的变化升级如何设计呢?

帅哥哟,离线,有人找我吗?
狐狸爸爸
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251054 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/5/19 15:39:00 [只看该作者]

自己先用ping方法判断网络是否通,下载过程中断网,谁也没办法。


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  12楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/5/19 15:49:00 [只看该作者]

哦,明白。

另外一个问题请教下:

如何得到目录下所有文件的个数?(目录下含子目录,子目录中又子目录)谢谢!!


 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  13楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2010/5/19 15:54:00 [只看该作者]

我想方法是,在服务机及客户机里的一个目录里设定一个文本文件,然后当客户机打开项目时比较两者这个文件名,如果文件名相同则不用升级,如果文件名不同就从服务机里复制相关文件到客户机中,这样就不用到SQL了。问题是不知用什么样的代码来实现比较好。

[此贴子已经被作者于2010-5-19 15:54:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  14楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/5/19 15:57:00 [只看该作者]

比较文件名是否相同,是不合理的,大部分都是文件名相同,只是字节不同或修改日期不同罢了,如果要升级应当是整个项目的所有文件都需要,这个保险升级。或者是只拷需要的升级文件。

 回到顶部
帅哥哟,离线,有人找我吗?
yankunhao
  15楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1019 积分:7155 威望:0 精华:0 注册:2008/9/1 22:34:00
  发帖心情 Post By:2010/5/19 16:05:00 [只看该作者]

我指的是在服务机里专门用一个文件名来设定服务机的版本号,当有新变化时由管理员在服务机变更这个文件,那么客户机就可以根据这个文件业升级了。

 


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  16楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/5/19 16:13:00 [只看该作者]

一、建立一个ftp服务器

二、在项目属性中:(AfterOpenProject中从表中提取升级信息进行比较后,有需要升级,打开升级窗口)

三、建立一个新的升级窗口,在afterload事件代码如下:

    

    

'检查是否有升级文件存在
Dim cmd As New SQLCommand
cmd.C ’   数据源名称

cmd.CommandText = "Select * From {服务器设置} where [ID] > 0" ‘存放了版本信息及ftp服务器的信息。
Dim dt As DataTable = cmd.ExecuteReader()
dim s1 as string = dt.datarows(0)("ipadress")   ’服务器地址
dim s2 as string = dt.datarows(0)("ftpuser")    ‘用户名
dim s3 as string = dt.datarows(0)("ftppwd")    、密码
s1 = DecryptText(s1,"oxy","8b2a03x5y6")   ’解密
s2 = DecryptText(s2,"oxyang","b1a2o3x4y5a6n7g8")  ’解密
s3 = DecryptText(s3,"oxing","b82331382x")  ’解密

Dim ipFile As String = ProjectPath & "ip.txt"
dim ip as string
dim files1 as New List(of string)
dim files2(100) as string
dim files3(100) as string
dim files22 as New List(of string)
dim files33 as New List(of string)
dim p2 as integer = 0
dim p3 as integer = 0
dim paths1 as New List(of string)
dim paths2 as New List(of string)
dim file1,file2,file3,file4,t1,t2 as string

If Filesys.FileExists(ipFile) Then
   ip = FileSys.ReadAllText(ipFile)
End If
If ip IsNot nothing then
   If NetWork.Ping(ip) then
      Dim ftp1 As new ftpclient
      ftp1.host= s1
      ftp1.Account = s2
      ftp1.password = s3
      files1 = ftp1.GetFileList("/升级")  ‘存放升级文件的目录
      if files1.count > 0 then
         for f as integer = 0 to files1.count -1
             files1(f) = "/升级/" & files1(f)
         Next
      end if
      paths1 = ftp1.GetDirectoryList("/升级")
      if paths1.Count > 0 then
         for h1 as integer = 0 to paths1.count -1
            t1 = "/升级/" & paths1(h1)
             files22 = ftp1.GetFileList(t1)
            
            if files22.count > 0 then
               for f2 as integer = 0 to files22.count -1                
                  files2(p2) = t1 & "/" & files22(f2)
                  p2 = p2 + 1
               Next
             end if
            paths2 = ftp1.GetDirectoryList(t1)
            if paths2.Count > 0 then
               for h2 as integer = 0 to paths2.count -1
                   t2 = t1 & "/" & paths2(h2)  
                   files33 = ftp1.GetFileList(t2)
                   if files33.count > 0 then
                      for f3 as integer = 0 to files33.count -1                       
                         files3(p3) = t2 & "/" & files33(f3)
                         p3 = p3 +1
                      Next
                    end if
                 Next
             end if
          Next
      end if 
   End if
End if
dim ss as string
if files1.Count > 0 then
   for i1 as integer = 0 to files1.Count -1
    ss = ss & files1(i1) & "|"
   Next
   ss = ss.trim()
end if
if files2.length > 0 then
   for i2 as integer = 0 to files2.length -1
    ss = ss & files2(i2) & "|"
   Next
    ss = ss.trim()
end if
if files3.length > 0 then
   for i3 as integer = 0 to files3.length -1
      ss = ss & files3(i3) & "|"
   Next
    ss = ss.trim()
end if
ss = ss.trimEnd("|")
Dim lst As WinForm.ListBox
lst = e.Form.Controls("ListBox1")
lst.Combolist = ss


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  17楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/5/19 16:30:00 [只看该作者]

四、增加一个开始升级按钮代码如下:

   

'''
Dim cmd As New SQLCommand
cmd.C

cmd.CommandText = "Select * From {服务器设置} where [ID] > 0"
Dim dt As DataTable = cmd.ExecuteReader()
dim s1 as string = dt.datarows(0)("ipadress")
dim s2 as string = dt.datarows(0)("ftpuser")
dim s3 as string = dt.datarows(0)("ftppwd")
s1 = DecryptText(s1,"oxy","8b2a03x5y6")
s2 = DecryptText(s2,"oxyang","b1a2o3x4y5a6n7g8")
s3 = DecryptText(s3,"oxing","b82331382x")

 

If FileSys.DirectoryExists("E:\data") Then '如果临时目录存在
    FileSys.DeleteDirectory(
"E:\data",2,3) '则删除之

    FileSys.CreateDirectory("E:\data")  ‘再新建临时目录
End
If

 

dim file1,file2,file3,file4 as string
Dim path as string = "E:\data\" '临时存入的目录

Dim lst As WinForm.ListBox
Lst = e.form.Controls("ListBox1")
if lst.Items.Count > 0 then
  For k as integer = 0 to lst.Items.Count -1
           lst.selectedIndex = k
           file1 = lst.Items(k)        
           file2 = "ftp://" & s2 & ":" & s3 & "@" & s1 & file1
           file3 = path & file1
           file4 = file3.Replace("/升级","")
           file4 = file4.trim()
         '  Network.downloadfile(file2,file4,"","",true,100000,true)
  Next
end if
Dim f as string = ApplicationPath  ’项目目录名称
f = f.TrimEnd("\","")

if  lst.Items.Count = ‘临时目录’then
   FileSys.CopyDirectory ("E:\data","& f &", True)

   messagebox.show("升级成功!需要重新启动项目!!")
   Syscmd.Project.Exit(False)

else

   return

end if 


 回到顶部
帅哥哟,离线,有人找我吗?
baoxyang
  18楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3313 积分:23134 威望:0 精华:1 注册:2009/3/31 11:25:00
  发帖心情 Post By:2010/5/19 16:31:00 [只看该作者]

没有时间注明,你自己看

 回到顶部
总数 18 上一页 1 2