【发布时间】:2011-07-25 04:30:58
【问题描述】:
我有一个程序可以保存名称、文件路径、摘要和日期等信息。
一切正常保存,从文件中加载一切正常...除非我从文件中加载信息,不要进行任何更改并再次重新保存文件并重新加载,第一个日期似乎已损坏不知何故。我在编辑器中编辑了 xml 文件,一切似乎都很好。我必须更改列表中的第一个日期并在编辑器中重新保存。然后就可以正常加载了。
这是我仅保存日期部分的代码:
using (XmlWriter serializer = XmlWriter.Create(saveFileDialog1.FileName))
{
serializer.Flush();
serializer.WriteStartDocument();
serializer.WriteStartElement("Items");
serializer.WriteElementString("DRNumber", TextBox1.Text.ToString());
serializer.WriteElementString("PicsPath", textBox3.Text.ToString());
serializer.WriteElementString("DocPath", textBox4.Text.ToString());
foreach (DateTime fname in date)
{
serializer.WriteElementString("Date", fname.ToShortDateString());
}
serializer.WriteEndElement();
serializer.WriteEndDocument();
serializer.Flush();
serializer.Close();
FileInfo fi1 = new FileInfo(saveFileDialog1.FileName);
}
这是将日期写入 XML 的最佳方式,还是我遗漏了什么?
【问题讨论】:
-
我看不出 xml 文件的构建方式有什么问题。也许发布一个具有“损坏”日期的 xml 文件的示例?
-
当您将数据保存到文件时是否保存正常(检查文件内容)?如果你手动制作好的xml并加载它,它加载正常吗?
-
我同意上述 cmets,我看不出你所做的有什么问题...检查代码的保存/加载部分 - 很可能那里有问题。
-
ToShortDateString()是文化敏感的。您是否尝试在生成 XML 的同一用户下的同一台机器上读取生成的 XML?如果答案是否定的,或者您的程序在其他用户的凭据下运行(例如,作为 SYSTEM 帐户下的 windows 服务) - 可能就是这种情况。 -
XML文件实际上是程序制作的,保存的很好。它可以在外部编辑器中打开。只要您更改程序(或外部 XML 编辑器)中的数据,它就可以很好地加载并且很好。但是,如果您加载它并重新保存它而不进行任何更改,它将无法正确加载第一组值。