在做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(); } } }