Удаление определенного элемента из файла в изолированном хранилище - PullRequest
2 голосов
/ 10 марта 2011

Есть ли способ удалить конкретную строку в файле, который находится в изолированном хранилище, например, я сохраняю несколько строк строки в файле, который находится в изолированном хранилище, и я хочу удалить конкретную строку, которую я выбираю в списке(строки строк читаются из изолированного хранилища в списке).вот код для записи:

StreamWriter writeFile;
            if (!store.DirectoryExists("SaveFolder"))
            {
                store.CreateDirectory("SaveFolder");
                writeFile = new StreamWriter(new IsolatedStorageFileStream("SaveFolder\\SavedFile.txt", FileMode.CreateNew, store));
            }
            else
            {
                writeFile = new StreamWriter(new IsolatedStorageFileStream("SaveFolder\\SavedFile.txt", FileMode.Append, store));
            }
            StringWriter str = new StringWriter();
            str.Write(urlHolder.Text);
            writeFile.WriteLine(str.ToString());
            writeFile.Close();


            urlHolder.Text = string.Empty;

и вот код для чтения:

 IsolatedStorageFile store = IsolatedStorageFile.GetUserStoreForApplication();

            StreamReader readFile = null;
            try
            {
                readFile = new StreamReader(new IsolatedStorageFileStream("SaveFolder\\SavedFile.txt", FileMode.Open, store));
                string fileText = readFile.ReadLine();

                while (fileText==readFile.ReadLine())
                {
                    bookmarkListBox.Items.Add(fileText);
                }

                readFile.Close();
            }

            catch
            {
                MessageBox.Show("Need to create directory and the file first.");
            }

Я нигде не могу найти ничего об удалении чего-либо в определенном файле, который находится в изолированном хранилище,так что если кто-то что-то знает, пожалуйста, ответьте, спасибо!

Ответы [ 2 ]

2 голосов
/ 10 марта 2011

Нет встроенных возможностей для манипулирования содержимым файла в IsolatedStorage таким образом.Ответственность за работу с содержимым файла возлагается на разработчика.

Самый простой способ сделать то, что вам нужно, - прочитать все содержимое исходного файла, обновить его в памяти и затемперепишите весь файл, используйте FileMode File.Create, чтобы перезаписать существующий файл.(Это позволит избежать проблем с меньшим содержимым, записываемым поверх более раннего содержимого.)

2 голосов
/ 10 марта 2011

Лучший способ - записать в файл по одной строке и пропустить то, что вы хотите удалить.Если у вас уже есть файл на SD-карте, запишите в другой файл, удалите оригинал и замените его новой версией.

Большая часть кода уже сделана.Просто напишите в файл по одной строке и пропустите элементы, которые вы не хотите сохранять.

writeFile.WriteLine(line);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...