我希望有人可以帮我解决这个烦人的小问题。我正在尝试写一个XML设置文件的文件路径,但没有任何反应。我没有得到任何错误消息或Just in Time调试窗口,它只是不执行该代码块。
程序功能是您设置用户帐户,并为每个帐户选择一个文件的功能。如果我将文件路径留空,则创建的XML文件没有任何问题。但是,如果甚至有一条路径要写,那么文件永远不会被创建。
以下是我的功能示例:
private void SaveSettings()
{
XmlWriterSettings xml_settings = new XmlWriterSettings();
xml_settings.Indent = true;
xml_settings.IndentChars = (" ");
using (XmlWriter xml_settings_file = XmlWriter.Create("settings.xml", xml_settings))
{
xml_settings_file.WriteStartElement("Main_Node");
xml_settings_file.WriteElementString("SettingA", Properties.Settings.Default.SettingA.ToString());
xml_settings_file.WriteElementString("SettingB", Properties.Settings.Default.SettingB.ToString());
xml_settings_file.WriteElementString("SettingC", Properties.Settings.Default.SettingC.ToString());
for (int i = 1; i < Properties.Settings.Default.UserAccounts.Count; i++)
{
xml_settings_file.WriteElementString("Account", System.Security.SecurityElement.Escape(Properties.Settings.Default.UserAccounts[i].ToString()));
xml_settings_file.WriteElementString("File", System.Security.SecurityElement.Escape(Properties.Settings.Default.FilePaths[i]));
}
xml_settings_file.WriteEndElement();
xml_settings_file.Flush();
}
}
为了让事情更加混乱,当我用一个简单的“Test”字符串替换FilePath变量时,它工作正常,文件创建没有问题。
答案 0 :(得分:1)
请尝试使用CDATA而不是转义路径字符。
您可以替换:
xml_settings_file.WriteElementString("File", System.Security.SecurityElement.Escape(Properties.Settings.Default.FilePaths[i]));
以下行:
xml_settings_file.WriteStartElement("File");
xml_settings_file.WriteCData(Properties.Settings.Default.FilePaths[i]);
xml_settings_file.WriteEndElement();
答案 1 :(得分:0)
这还有待解决。我最后只使用了内置的应用程序设置。