我的程序有一个问题:运行 Win XP,不可能在 backgroundworker 的 doWork() 中写入 XML 文件;
这是BW内部的代码:
try
{
updateUI(file.FullName, 2);
writeToXml(file, e.Argument.ToString());
}
xml文件的创建:
XDocument xmlDocVideoList = new XDocument(
new XDeclaration("1.0", "utf-8", "yes"),
new XComment("..."),
new XElement(/*ns+*/"VideoList"));
xmlDocVideoList.Save(saveFileDialog1.FileName);
writeToXml 方法:
public void writeToXml(FileInfo file, string path)
{
fileCounterMapped++;
Video temp = new Video();
temp.nameFile = file.Name;
temp.nameVideo = temp.processNameFile(temp.nameFile);
temp.path = file.Directory.FullName;
XmlDocument doc = new XmlDocument();
doc.Load(path);
XmlNode node = doc.CreateNode(XmlNodeType.Element, "Video", null);
XmlNode subnodeFN = doc.CreateNode(XmlNodeType.Element, "FileName", null);
XmlNode subnodeVN = doc.CreateNode(XmlNodeType.Element, "VideoName", null);
XmlNode subnodePATH = doc.CreateNode(XmlNodeType.Element, "Path", null);
subnodeFN.InnerText = temp.nameFile;
subnodeVN.InnerText = temp.nameVideo;
subnodePATH.InnerText = temp.path;
node.AppendChild(subnodeFN);
node.AppendChild(subnodeVN);
node.AppendChild(subnodePATH);
doc.DocumentElement.AppendChild(node);
doc.Save(path);
}
在我的电脑上,运行 Win7 这个 WORKS,但在所有装有 WinXP 的 PC 上都不起作用。在所有计算机中,我都使用 VisualStudio 10 Express,并且我有 FrameWork 4。
提前致谢!