Получение "Операция не разрешена в IsolatedStorageFileStream."ошибка - PullRequest
4 голосов
/ 22 июля 2011

"Операция не разрешена в IsolatedStorageFileStream."указывает на строку кодов:

var fileStream = storage.OpenFile(item.FileName, FileMode.Open, FileAccess.Read) 

в кодах ниже:

private void OnReadSelected()
            {
                IsolatedStorageFile storage = IsolatedStorageFile.GetUserStoreForApplication();
                List<FileItem> readItems = new List<FileItem>();
                foreach (var item in Files)
                {
                    if (item.IsChecked)
                        if (storage.FileExists(item.FileName))
                        {
                            storage.DeleteFile(item.FileName);
                            readItems.Add(item);
                        }
                }
                 foreach (var item in readItems)
                     using (var fileStream = storage.OpenFile(item.FileName, FileMode.Open, FileAccess.Read))
                     {
                         using (var reader = new StreamReader(fileStream))
                         {
                             item.FileName = reader.ReadLine();
                             item.FileText1 = reader.ReadLine();

                             item.RdbText1 = reader.ReadLine();

                         }
                     }
            }

Могу ли я использовать другую производную, кроме StreamReader?

1 Ответ

2 голосов
/ 22 июля 2011

<code>
foreach (var item in Files)
{
    if (item.IsChecked)
        if (storage.FileExists(item.FileName))
        {
           storage.DeleteFile(item.FileName);
           readItems.Add(item);
        }
}

Вы использовали этот код для удаления некоторых файлов из магазина в зависимости от условия if (item.IsChecked) . И вы добавляете эти элементы в коллекцию readItems . Но в этом коде

<code>
foreach (var item in readItems)
                     using (var fileStream = storage.OpenFile(item.FileName, FileMode.Open, FileAccess.Read))
                     {
                         using (var reader = new StreamReader(fileStream))
                         {
                             item.FileName = reader.ReadLine();
                             item.FileText1 = reader.ReadLine();
                             item.RdbText1 = reader.ReadLine();
                         }
                     }

вы пытаетесь открыть файлы, которые вы только что удалили из магазина.
Таким образом, вы получаете исключение Операция не разрешена для IsolatedStorageFileStream , поскольку файлы не существуют в хранилище.

...