2011-02-07 70 views
0

我已经编写了一个应用程序,该应用程序使用隔离的存储器存储数据,我想在它变老时定期清除它们。我已经编写了一个从Closing中调用的函数,该函数检查隔离存储中的旧数据并删除它。为什么独立存储不能在Windows Phone 7上退出时删除最后两个临时文件?

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

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

手机不遵守此延迟并在执行delte代码后立即退出。我找不到与DeleteFile相关的flush命令,因为我没有在那一点上引用流。

有没有其他人发现这个或类似的东西?有没有我缺少的神奇冲洗方法,或者这是手机IsolatedStorage实施中的缺陷?

+2

为什么不显示您要使用的代码,也许我们可以帮助您调试它。就目前来看,你的问题归结为“我有一个模糊的问题,你有类似的东西吗?”无法回答。 – 2011-02-07 21:59:55

回答

1

我同意Matt和Matthieu。 虽然也想问你有没有试过截断文件? IsolatedStorageFileStream isfStream = new IsolatedStorageFileStream(strXMLFile, FileMode.Truncate, isf);

相关问题