我使用IsolatedStorageFile
类的DeleteFile方法从IsolatedStorage中删除文件。有时这种方法会抛出IsolatedStorageException
。我提到的MSDN页面说当" 目标文件打开或路径不正确时会抛出此异常"。
要检查文件是否真的存在,我可以在调用IsolatedStorageFile.FileExists
方法之前调用DeleteFile
方法。
但我怎么知道我要删除的文件是否已打开?我想知道它,因为这可能是我得到异常的原因。)
更新1:我正在尝试运行我的应用程序的多个实例。
答案 0 :(得分:2)
显然,您正在使用应用程序的多个实例同时打开隔离存储中的文件,并尝试删除该文件。那么,那就是你的问题。如果应用程序的另一个实例打开了文件,则无法删除该文件。
以下是您可以做的事情:
使用哪种解决方案取决于您的应用程序的工作方式以及文件的用途。
编辑:无法检查文件是否在删除之前是否已打开,因为文件可能会在检查和另一个应用程序实例删除之间打开。
If(!FileIsOpen(path))
{
// here, another application may open the file
DeleteFile(path); // oops
}
可以做的是:
try
{
DeleteFile(path);
}
catch(IsolatedStorageException)
{
// do nothing; let the other instances try and delete the file.
}