編輯: Alrighty,終於得到它的工作。這是我的代碼,如果有人需要它C#。幫助表單
public void Save(string savePath, string[] folderPath, string date, string time)
{
//path for xml
//TODO: use "+savePath+"
string fileName = date+"_session.xml";
if (File.Exists(fileName) == false)
{
//ID
int sessionId = 1;
//creating
XDocument doc = new XDocument(
new XElement("sessions",
new XElement("session",
new XAttribute("id", sessionId++),
new XAttribute("amount", folderPath.Length),
new XAttribute("date", date),
new XAttribute("time", time))));
XElement folders = doc.Descendants("session").FirstOrDefault();
for (int i = 0; i < folderPath.Length; i++)
{
folders.Add(new[] { new XElement("folderPath", folderPath[i]) });
}
//saving document
doc.Save(fileName);
} else
{
XDocument doc = XDocument.Load(fileName);
int maxId = doc.Root.Elements("session").Max(t => Int32.Parse(t.Attribute("id").Value));
XElement data = new XElement("session",
new XAttribute("id", ++maxId),
new XAttribute("amount", folderPath.Length),
new XAttribute("date", date),
new XAttribute("time", time));
for (int i = 0; i < folderPath.Length; i++)
{
data.Add(new[] { new XElement("folderPath", folderPath[i]) });
}
doc.Root.Add(data);
doc.Save(fileName);
}
}
OLD CODE
public void Save(string savePath, string[] folderPath, string date, string time
我創建程序,保存當前打開的文件夾到.txt文件, 我試圖形成一個XML在下面的時尚
<?xml version="1.0" encoding="utf-8"?>
<!--This file is generated by the program.-->
<Folders>
<Save ID="1">
<Amount amount="3">
<Date>19.07.2016</Date>
<Time>22:05</Time>
\t <Folder>C:\\users\test</Folder>
\t <Folder>C:\\program data\\test2</Folder>
\t <Folder>C:\\users\\aleksei\\desktop</Folder>
\t </Amount>
</Save>
<Save ID="2">
<Amount amount="2">
<Date>19.07.2016</Date>
<Time>23:15</Time>
\t <Folder>C:\\users\test6</Folder>
\t <Folder>C:\\users\\aleksei\\pictures</Folder>
\t </Amount>
</Save>
</Folders>
我想爲每天生成新的XML,並能夠爲一個保存會話添加多個文件夾。我現在所擁有的
public void Save(string savePath, string folderPath, string date, string time, string amount)
{
if (File.Exists(date+"_saves.xml") == false)
{
XmlWriterSettings xmlWriterSettings = new XmlWriterSettings();
xmlWriterSettings.Indent = true;
xmlWriterSettings.NewLineOnAttributes = true;
using (XmlWriter xmlWriter = XmlWriter.Create(date + "_saves.xml", xmlWriterSettings))
{
xmlWriter.WriteStartDocument();
xmlWriter.WriteStartElement("Folder");
xmlWriter.WriteStartElement("Amount", amount);
xmlWriter.WriteElementString("Date", date);
xmlWriter.WriteElementString("Time", time);
xmlWriter.WriteElementString("folderPath", folderPath);
xmlWriter.WriteEndElement();
xmlWriter.WriteEndElement();
xmlWriter.WriteEndDocument();
xmlWriter.Flush();
xmlWriter.Close();
}
}
else
{
XDocument xDocument = XDocument.Load(date + "_saves.xml");
XElement root = xDocument.Element("Folder");
IEnumerable<XElement> rows = root.Descendants("Amount");
XElement firstRow = rows.First();
firstRow.AddBeforeSelf(
new XElement("Amount",
new XElement("Date", date),
new XElement("Time", time),
new XElement("folderPath", folderPath)
));
xDocument.Save(date + "_saves.xml");
}
}
你現在的代碼有什麼問題?什麼不起作用? – ElenaDBA
目前沒有任何工作,這裏給我一個錯誤: XDocument xDocument = XDocument.Load(date +「_saves.xml」); 說: 在System.Xml.dll –
中發生未處理的類型'System.Xml.XmlException'的異常我甚至不知道我在做什麼是正確的。也許使用LINQ好得多? –