从隔离存储中的文件中删除特定项目

时间:2011-03-09 21:40:49

标签: windows-phone-7

有没有办法删除隔离存储中的文件中的特定行,例如,我在文件中保存了几行字符串,即在隔离存储中,我想删除我在列表框中选择的特定字符串(从列表框中的隔离存储中读取字符串行)。 这是写作的代码:

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 个答案:

答案 0 :(得分:2)

最好的方法是一次写入一行文件并跳过要删除的内容。如果您已将该文件存放在SD卡上,请写入另一个文件,删除原始文件并将其替换为新版本。

您已完成大部分代码。只需一次写入一行文件并跳过您不想保存的项目。

writeFile.WriteLine(line);

答案 1 :(得分:2)

没有任何内置功能可以用这种方式操作IsolatedStorage中文件的内容。处理文件内容的责任由开发人员负责。

最简单的方法是读取原始文件的全部内容,在内存中更新,然后重写整个文件,使用FileMode File.Create覆盖现有文件。 (这样可以避免在较早的内容中写入较小内容时出现任何问题。)