Foxtable(狐表)用户栏目专家坐堂 → 二进制多文件管理中本地缓存对Excel文件失效


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

主题:二进制多文件管理中本地缓存对Excel文件失效

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


加好友 发短信
等级:二尾狐 帖子:546 积分:3903 威望:0 精华:0 注册:2011/5/24 15:35:00
二进制多文件管理中本地缓存对Excel文件失效  发帖心情 Post By:2016/3/17 17:23:00 [只看该作者]

我的打开文件的代码是按实例修改得到的;除了Excel文件外,其他文件均正常,对Excel文件无论本地是否存在都会重新下载,不知是何原因?
代码如下:
If Tables("工程预算.送审预算").Current Is Nothing Then
    Return
End If
Dim dr As DataRow = Tables("工程预算.送审预算").Current.DataRow
Dim fl As String =  ProjectPath & "\temp\" & dr("文件名")
If FileSys.FileExists(fl) AndAlso CRCCheckFile(fl) = dr.SQLGetValue("CRC值") Then '如果本地存在同名文件且CRC校验值相同
    '则直接使用本地文件
Else '否则从数据库提取文件
    MessageBox.Show("1")
    If dr.SQLLoadFile("文件",fl) = False Then '如果提取文件失败
       ' Messagebox.Show("预算文件提取失败,可能并不存在预算文件!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information)
        Return
    End If
End If
Dim Proc As New Process '打开文件
Proc.File = fl
Proc.Start()

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2016/3/17 18:33:00 [只看该作者]

如果excel里面有公式,打开xls以后, CRCCheckFile 的值就是有变化的了。

 

所以判断,必须用最后修改时间来判断

 

http://www.foxtable.com/help/topics/2707.htm

 


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


加好友 发短信
等级:二尾狐 帖子:546 积分:3903 威望:0 精华:0 注册:2011/5/24 15:35:00
  发帖心情 Post By:2016/3/18 8:49:00 [只看该作者]

其他类型的文件是否都用最后修改时间来判断更好呢?

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/3/18 9:12:00 [只看该作者]

crccheckfile最可靠,没办法才使用最后修改时间。

 

当然最后修改时间绝大多数时候,也是非常可靠的,除非有人故意搞事。


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


加好友 发短信
等级:二尾狐 帖子:546 积分:3903 威望:0 精华:0 注册:2011/5/24 15:35:00
  发帖心情 Post By:2016/3/18 9:17:00 [只看该作者]

那只能先判断文件的扩展名再做选择

 回到顶部