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