В моих модульных тестах я использую следующий код для открытия потока и записи в него:
IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();
stream = m_store.OpenFile(filename, FileMode.Create);
...
stream.Flush();
stream.Close();
stream.Dispose();
store.Dispose()
Первый раз, когда это удается, но во второй раз, это терпит неудачу со следующим выводом журнала:
Дополнительная информация: Операция не разрешена в IsolatedStorageFileStream.
Константа перечисления FileMode.Create определяется как:
Указывает, что операционная система должна создать новый файл. Если файл уже существует, он будет перезаписан. Create эквивалентно запросу, что если файл не существует, используйте CreateNew; в противном случае используйте Truncate.
так что похоже это правильная константа.
Я нашел несколько похожих вопросов о стеке потока, таких как
Исключение IsolatedStorageFileStream - выбрасывать при открытии файла?
но они не помогли. Как было предложено где-то в сети (сейчас не могу найти ссылку), я попытался сначала удалить файл, если он существовал, вопреки комментариям enum, как показано ниже, но тоже не помогло:
if (store.FileExists(filename))
{
store.DeleteFile(filename);
}
ВОПРОС: Чего мне не хватает?
Спасибо!