我们在xml文件中缓存这些对象,并且当24+已经过时我们不想忽略缓存的文件。我不想加载文件来检查是否已经过了24小时,所以我想知道是否有办法获取文件的元数据而不加载它。类似的东西:
using (IsolatedStorageFile file = IsolatedStorageFile.GetUserStoreForApplication())
{
DateTime dateTimeCreated = file.GetAttributes(this.CacheFileName)["DateTimeCreated"];
}
让我知道。谢谢!
答案 0 :(得分:1)
该方法旁边没有小手机图标,因此可能无法使用,根据文档:
http://msdn.microsoft.com/en-us/library/system.io.isolatedstorage.isolatedstoragefile(VS.95).aspx
Uggh ...可能只保留一个只有最后写入时间的较小文件,因此您知道是否需要加载大文件或忽略它?甚至是文件名本身的一些奇特的日期时间?
答案 1 :(得分:1)
日志文件怎么样? (或者您可以在应用设置中列出日期+名称)
答案 2 :(得分:0)
我会使用IsolatedStorageSettings.ApplicationSettings来保存我的文件名和与该文件名相关联的元数据作为类实例。 我在我的WP7应用程序中使用了它,效果很好。一个好的方案是检查某些缓存实现的文件到期,如果它已过期,我可以直接删除该文件。
答案 3 :(得分:0)
我在考虑你能做些什么,这很简单,接近你的需要......
如果你的标准是当前日,而不是过去的24小时,那么你可以实现以日期命名的目录,比如yyyymmdd格式,然后在你的iso接口层查找当前的文件天的目录..如果你没有找到它,那么就没有它的缓存并且你生成它。
您可以在方便的时候实施清洁工作以清除非当前日期目录。
此策略将使您的24小时时间框架变得更像0-24小时..因此,当您认为您的用户可能会使用您的应用时,平均有12个...会发生偏差。 / p>
您可以通过巧妙地使用算法来生成目录来调整时间范围。例如,您可以使其每2天生成一个唯一的目录名称(平均24小时缓存)。
如果IsolatedStorageFile.GetFileNames()正在使用filespec,您可以将日期编码到文件名的后半部分。不幸的是,它仍然会返回*。*无论如何。