Bri*_*ing 2 windows winapi temporary-files
我们的应用程序从外部设备收集数据.此数据主要驻留在内存中,但在用户明确保存数据之前,会在临时文件中假脱机到磁盘.这是为了在应用程序因某些原因崩溃时提供一些恢复机会.一般来说,它工作得很好.
最近,我们发现,由于Windows对自动更新变得更加强大,这些文件会在重新启动时自动删除.因此,如果Windows杀死我们的应用程序以自动应用更新,那么在重新启动后,允许恢复的临时文件就会消失.
我通过故意杀死应用程序并重新启动来测试该问题; 实际上,重启后临时文件已经消失了.
该文件使用Win32 API调用创建GetTempFileName,伴随着GetTempPath.我在这个主题上读到的所有内容都说这些文件不会自动删除,但它们显然正在被删除.
我能做些什么来阻止这种情况?或者我应该改变我们的安全数据存储位置?
您所看到的是Windows 10中添加的新"存储感"功能.
Windows 10能够在最近的版本中自动清除临时文件.从build 15014开始,Settings中出现了一个新选项.
启用后,可以将其设置为清除临时文件,回收站等项目.您可以单独关闭它们.
或者,另一个选项是更改您的应用程序,以将其临时文件保存在您控制的非系统临时文件夹中,而不是使用GetTempPath().也许还可以使用除了GetTempFileName()创建临时文件名之外的其他内容(例如使用日期/时间或guid),因此Windows无法跟踪您创建的临时文件.那么也许Storage Sense不会再自动删除你的文件了.
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |