1

我的程序有一个问题:运行 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。

提前致谢!

4

1 回答 1

0

XDocument 对象属于较新版本的 .Net 可能会尝试仅使用 XMLDocument。

如果您使用 .NET 3.0 或更低版本,则必须使用 XmlDocument 又名经典 DOM API ...也许 xp 不支持此功能,或者您可能需要更新 Windows。

于 2013-07-01T08:00:48.983 回答