gpt4 book ai didi

file-io - 在 Windows 8 RT 中替换或重新创建文件会保留旧的 DateCreated 值

转载 作者:行者123 更新时间:2023-12-02 16:53:02 25 4
gpt4 key购买 nike

我正在尝试将数据缓存在 Windows 应用商店应用程序的文件中,并使用 DateCreated 值来确定它是否已过期。

我第一次尝试这样做:

    var file = await rootFolder.CreateFileAsync(filename, Windows.Storage.CreationCollisionOption.ReplaceExisting);

FileIO.WriteTextAsync(file, contents);

但是当它保存文件时,仅 DateModified 值发生更改,即使 ReplaceExisting 选项的注释明确指出它会重新创建文件并替换现有文件。

所以我决定强制它删除该文件并使用以下命令重新创建它:

    var file = await rootFolder.CreateFileAsync(filename, Windows.Storage.CreationCollisionOption.ReplaceExisting);

// force delete because windows rt is not doing what it's supposed to in the line above!!
await file.DeleteAsync();
file = await rootFolder.CreateFileAsync(filename);

FileIO.WriteTextAsync(file, contents);

但令人惊讶的是,我仍然得到相同的结果!该文件将被删除并使用旧的创建日期重新创建!

这是一个错误,还是我在这里做错了什么?

最佳答案

这是设计使然,一项称为“文件系统隧道”的功能。这个KB article解释行为和基本原理。

它记录的解决方法需要注册表编辑,显然您不能在商店应用程序中依赖它。您需要找到解决方法,例如使用上次写入的时间戳或在两个文件之间交替或在单独的文件中跟踪年龄。

关于file-io - 在 Windows 8 RT 中替换或重新创建文件会保留旧的 DateCreated 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14133560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com