关于独立存储:为什么独立存储在 Windows Phone 7 上退出时不会删除最后两个临时文件?

Why does Isolated storage not delete the last two temporary files when exiting on a Windows Phone 7?

我编写了一个使用独立存储存储数据的应用程序,我想在数据变旧时定期清除这些数据。我编写了一个从 Closing 调用的函数,该函数检查旧数据的隔离存储并将其删除。

这个程序也将删除目录中的最后两个文件之外的所有文件。当我调试代码时,我可以看到它对这些文件执行 DeleteFile 方法。我什至在调用 DeleteFile 后立即检查文件是否仍然存在。根据调试器它没有。

然而,当应用程序再次启动时,那些最后文件的旧数据仍然在隔离存储中。考虑到这可能是一个竞争条件,我在删除路由之后放置了一个 Thread.sleep(1000) 。

电话不遵守此延迟,并在执行 delte 代码后立即退出。我找不到与 DeleteFile 相关的刷新命令,因为当时我没有对流的引用。

有没有其他人发现这个或类似的东西?是否有我遗漏的魔术刷新方法,或者这是电话隔离存储实现中的缺陷?


我同意马特和马蒂厄的观点。
虽然也想问你有没有试过截断文件?

IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.Truncate, isf);