如何从C#中的txt文件中删除XML元素

时间:2014-03-08 10:26:00

标签: c# xml dictionary xml-serialization

要使用XML序列化Dictionary,我使用SerializableDictionary类。要在TXT文件中写入和读取SerializableDictionary,我使用以下方法:

// Write
public static void WriteOnFile(string pathFile)
{
   XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary<string, double>));
   using (FileStream fs = File.OpenWrite(pathFile))
   {
      using (StreamWriter writer = new StreamWriter(fs))
      {
         serializer.Serialize(fs, databaseMateriali);
      }
   }
}

// Read
public static SerializableDictionary<string, double> ReadFromFile(string pathFile)
{
   SerializableDictionary<string, double> elencoLetto = new SerializableDictionary<string, double>();
   using (FileStream fs = File.OpenRead(pathFile))
   {
      using (StreamReader reader = new StreamReader(fs))
      {
         fs.Position = 0;
         XmlSerializer serializer = new XmlSerializer(typeof(SerializableDictionary<string, double>));
         SerializableDictionary<string, double> clone = (SerializableDictionary<string, double>)serializer.Deserialize(fs);
                    elencoLetto = clone;
      }
   }
   return elencoLetto;
}

如何在不删除和重写整个文件的情况下从此TXT文件中删除XML元素?

1 个答案:

答案 0 :(得分:0)

无法从文件中删除字节。您可以标记数据,以便可以使用程序逻辑来不使用它。这样文件保持相同的字节数,但你的逻辑可以“删除”它的一部分。但是你的类似乎不支持这个,所以你必须在删除内存中的条目后重写整个文件。