Foxtable(狐表)用户栏目专家坐堂 → [建议]建议改正FTP上传、下载的文件时间


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

主题:[建议]建议改正FTP上传、下载的文件时间

帅哥哟,离线,有人找我吗?
shenyl0211
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:977 积分:6835 威望:0 精华:0 注册:2012/4/2 21:49:00
[建议]建议改正FTP上传、下载的文件时间  发帖心情 Post By:2013/8/11 19:31:00 [只看该作者]

本来想在服务器上建立一个名为“升级文件”的文件夹,存放publish文件夹下的所有文件,如果狐表新版发布,我们在新版基础上修改管理系统后发布时,就可以同时上传最新的系统文件至“升级文件”,而根本就不必考虑狐表到底更新了哪些系统文件。这样,客户端自动升级的时候也只需比较既有项目文件与“升级文件”的时间决定是否需要下载,如果需要下载,则在项目文件夹下自动创建“升级文件”文件夹,保存最新的系统文件,并运行批命令终止foxtable进程、移动“升级文件”下的所有文件到项目文件夹、重启项目文件。这就可以全自动解决狐友们最头疼的自动升级问题,也可以避免用户对升级问题的诸多不满。但现在发现用FTP上传、下载的文件时间不是真正的最后修改时间,而是上传、下载时的时间,没有任何用处,因为publish下的所有文件时间肯定都早于上传后的服务器上的“升级文件”中的文件时间,客户端至少存在一次假升级,而且每安装一次就假升级一次。故建议改正FTP上传、下载的文件时间——如果可能。至少帮助的下列解释是不对的 :GetFileTime返回ftp上指定文件最后一次修改的日期时间。

 

注:虽然我在论坛上曾介绍过如何自动升级,但如果:原来是A版本,现在为B版本,且B版本升级了2次,按理说B版的第2次不应该包含系统升级文件,但考虑到部分用户仍在用A版本,即B版本第1次发布后没有及时运行,错过了升级机会,所以为了保证所有用户能正常运行,每次升级都不得不包含系统升级文件。

 

所以,现在想实现全自动升级,只能利用包含系统版本日期的Version.txt和包含全部系统文件的压缩文件(体积缩小到1/3,为8Mb),与没压缩的部分升级差不多,因为一个foxtable.exe就达6.5Mb。


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


加好友 发短信
等级:七尾狐 帖子:1732 积分:11266 威望:0 精华:0 注册:2011/12/15 22:06:00
  发帖心情 Post By:2013/8/11 20:35:00 [只看该作者]

这种处理应该很容易,你想错了。按你的思路,能不能这样

1.建立开发版本号——A,B用于记录你开发的FOXTABLE版本

2.建立软件版本号——用于区分软件的版本

 

建立两种升级模式,即可解决。目前我自己就是这样做的。

开发版本更新都是让用户自己动手,目前就更新过一次,没那种必要经常更新。但是软件版本的话,基本一天可能N更新,更新到用户都麻木了,哈哈。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2013/8/11 21:02:00 [只看该作者]

 ftp的最后修改日期,是指在ftp中修改的日期,而非文件自身的修改日期。

 如果要获取文件自身的修改日期,需要先把文件下载下来,再通过代码读取文件信息。

 你可以这样做,上传项目的时候,同时上传一个小的txt文件,是否升级,就看这个txt自身最后修改的时间呗。
[此贴子已经被作者于2013-8-11 21:09:23编辑过]

 回到顶部