Windows phone 7 是否可以知道何时在不加载的情况下创建了IsolatedStorageFile?

Windows phone 7 是否可以知道何时在不加载的情况下创建了IsolatedStorageFile?,windows-phone-7,Windows Phone 7,我们将这些对象缓存在xml文件中,我们不希望在超过24小时后忽略缓存的文件。我不想非要加载文件来检查24小时是否已经过去,所以我想知道是否有一种方法可以在不加载文件的情况下获取文件的元数据。比如: using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication()) { DateTime dateTimeCreated = file.GetAttributes(this.CacheFileN

我们将这些对象缓存在xml文件中,我们不希望在超过24小时后忽略缓存的文件。我不想非要加载文件来检查24小时是否已经过去,所以我想知道是否有一种方法可以在不加载文件的情况下获取文件的元数据。比如:

using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
{
    DateTime dateTimeCreated = file.GetAttributes(this.CacheFileName)["DateTimeCreated"];
}

让我知道。谢谢

根据文档,该方法旁边没有小的电话图标,因此可能不可用:


Uggh…也许保留一个只有最后一次写入时间的小文件,这样您就知道是需要加载大文件还是忽略它了?或者甚至在文件名本身中使用一些奇特的日期时间?

我会使用IsolatedStorageSettings.ApplicationSettings将我的文件名和与该文件名关联的元数据作为类实例。
我已经在我的WP7应用程序中使用了它,效果非常好。这方面的一个好方案是检查一些缓存实现的文件过期情况,如果文件过期,我可以直接删除该文件。

我在想,您可以做些什么,既简单又符合您的需要

如果您认为标准是当天,而不是过去的24小时,那么您可以实现以日期命名的目录,比如yyyymmdd格式,然后在iso接口层中查找当天目录中的文件。。如果您没有找到它,那么它就没有缓存,您将生成它

您可以在方便的时候实施内部管理以清除非当前日期的目录

此策略将使您的24小时时间框架变得更像0-24小时。。所以平均12。。。根据一天中你认为你的用户可能会使用你的应用程序的时间而定

您可以通过巧妙地使用生成目录的算法来调整时间范围。例如,您可以让它每2天生成一个唯一的目录名(平均24小时缓存)


如果IsolatedStorageFile.GetFileNames()正在使用filespec,则可以将日期编码到文件名的后半部分。不幸的是,不管怎样,它仍然返回*.

一个日志文件怎么样?(或者您可以在应用程序设置中列出日期+姓名)

日志文件怎么样?(或者你可以在你的应用程序设置中列出日期+姓名)这也是可能的,但我想用最简单的方法来完成这项任务。如果我找不到更好的办法,我想我会采纳你的建议。谢谢。@lukas我实际上使用了你的建议,你介意把它作为回答来接受吗?谢谢。那太糟糕了,我想我真的必须这么做。谢谢。当我开始需要相同的东西时,我自己可能会在文件名或目录中添加yyyyMMddHHmmss UTC时间戳…除非API在那时更新。谢谢,最后使用了日志文件。