我想做一个文件自动更新的update.exe程序,思路是在程序启动时自动检查某个固定路径下是否有最新程序,通过对比文件创建时间来确定是否有最新程序。如果有就关闭该程序,同时启动更新程序对该文件进行复制更新。如:原可执行文件为 c:\WSL\WSL.exe (创建时间为:2007年12月24日, 16:41:51)
启动时检查到远程服务器\\192.168.0.1\update\WSL.exe (创建时间为:2008年1月7日, 12:21:45)有最新程序。那么就启动c:\WSL\update.exe且退出c:\WSL\WSL.exe,拷贝\\192.168.0.1\update\WSL.exe到c:\WSL\下,以完成更新。以上更新程序的思路是否正确?并请高手指点一下如何确定该目录下有否有该文件存在,以及如何比较文件的创建时间?谢谢

解决方案 »

  1.   

    详见里面的SystemSet.INI文件说明
    http://www.medicchina.com/xiubiyuan/liveupdate.rar
      

  2.   

    感觉比较文件时间不是最好的办法。
    可以比较文件版本,文件版本可以从文件本身获取(不是所有的文件),也可以用一个单独的文件来记录版本,如INI或者XML。流行的做法就是这样。
      

  3.   

    同意楼上
    以下是获取文件的版本号
        Dim fso As New FileSystemObject
        MsgBox fso.GetFileVersion("D:\update.exe")
      

  4.   

    Dim fso As New FileSystemObject '用户定义类型?谢谢
      

  5.   

    VB可以引用FSO,跟系统的对文件操作一样,增删改,查改属性,其实VB开发的程序都在文件属性中带有版本号,这个版本号要你在开发打包时就要填写的,直接读取比较就行了;如果是数据库的话,比较修改时间(不是很准确,改时间问题)或比较ID、大小了;查远程数据,方法也相同,如果想偷懒的话,就直接用调用系统的命令了更新时,先把文件传过来做临时再关闭程序Update
      

  6.   

    Visession Anyupdate自动升级软件系统
    免费将自动升级功能加入您的软件产品中
    网站:http://www.visession.com/anyupdate
    下载:http://www.visession.com/anyupdate/DownLoad.htm