在做Windows Phone开发时,应该都遇到过 Operation not permitted on IsolatedSotrageFileStream异常。比如,刚刚Create的File,马上去读就会遇到这样的问题。问题在于IsolatedStorageFile.CreateFile返回的是一个IsolatedStorageFileStream, 而在IsolatedStorageFile.OpenFile时又会创建另一个IsolatedStorageFileStream而前者并没有释放, 因此就会出现这样的问题。正确的用法如下:
string filePath = "log.txt";
if (!isolatedStorageFile.FileExists(filePath))
{
using (IsolatedStorageFileStream createFileStream = isolatedStorageFile.CreateFile(filePath))
{
createFileStream.Close();
}
using (
IsolatedStorageFileStream writeFileStream = isolatedStorageFile.OpenFile(filePath,
FileMode.OpenOrCreate,
FileAccess
.ReadWrite,
FileShare.ReadWrite)
)
using (var streamWriter = new StreamWriter(writeFileStream))
{
streamWriter.WriteLine("Event Log:");
streamWriter.Close();
writeFileStream.Close();
writeFileStream.Dispose();
}
}
}