加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows – 在读取文件时避免更新上次访问的日期/时间

发布时间:2020-12-13 22:37:51 所属栏目:Windows 来源:网络整理
导读:我们正在构建一个基于 Windows的应用程序,它以递归方式遍历目录结构,查找符合特定条件的文件,然后对它们进行一些处理.为了决定是否处理特定文件,我们必须打开该文件并阅读其中的一些内容. 这种方法原则上似乎很好,但是一些测试应用程序早期版本的客户报告说
我们正在构建一个基于 Windows的应用程序,它以递归方式遍历目录结构,查找符合特定条件的文件,然后对它们进行一些处理.为了决定是否处理特定文件,我们必须打开该文件并阅读其中的一些内容.

这种方法原则上似乎很好,但是一些测试应用程序早期版本的客户报告说它正在改变大量文件的最后访问时间(这并不奇怪,因为它实际上是访问文件).这对于这些客户来说是一个问题,因为他们具有基于上次访问文件时间的存档策略(例如,他们存档过去12个月内未访问过的文件).由于我们的应用程序计划比存档“窗口”更频繁地运行,因此我们有效地阻止了这些文件的任何存档.

我们尝试添加一些代码来保存每个文件的最后访问时间,然后再读取它,之后再写回来(我知道这很糟糕),但这会导致另一个基于文件系统事务日志进行增量备份的客户出现问题.我们对文件上次访问时间的显式设置导致这些文件包含在每个增量备份中,即使它们实际上没有更改.

所以这就是问题:在Windows环境中有什么办法可以在没有最后访问时间的情况下读取文件吗?

提前致谢!

编辑:尽管“ntfs”标签,我们实际上不能依赖文件系统是NTFS.我们的许多客户通过网络运行我们的应用程序,因此它可能只是另一端的任何东西.

解决方法

documentation表明你可以做到这一点,虽然我自己从未尝试过.

To preserve the existing last access time for a file even after accessing a file,call SetFileTime immediately after opening the file handle with this parameter’s FILETIME structure members initialized to 0xFFFFFFFF.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读