Объединение нескольких XML файлов - C#
Формулировка задачи:
есть папка, где хранится неизвестное число файлов *.xml.
нужно объединять в один файл части пяти файлов (не весь файл, а его часть от <press> до </press>), имена которых начинаются не с "!". добавлять восклицательный знак в начало имен файлов, которые использовались для объединения.
private void button1_Click(object sender, EventArgs e) { if (textBox1.Text != "") { int count = 0; string u = ""; string na = ""; DirectoryInfo direct = new DirectoryInfo(textBox1.Text); StringBuilder fileList = new StringBuilder(); foreach (FileInfo f in direct.GetFiles("*.xml")) { u = Convert.ToString(fileList.AppendLine(f.Name)); count += 1; na = na + "\r\n" + f.Name; string directSize = Convert.ToString(count); MessageBox.Show(na); if (f.Name.StartsWith("!")) {} else { } } } }
Решение задачи: «Объединение нескольких XML файлов»
textual
Листинг программы
private void AppendXML(string filename, XmlNodeList list) { XmlDocument xml = new XmlDocument(); xml.Load(filename); list.ForAll(xml.DocumentElement().AppendChild); FileStream fs = new FileStream(filename,FileMode.Create); xml.Save(fs); } private void concatFunction(String directoryPath) { String[] files = Directory.GetFiles(directoryPath, "*.xml"); List<String> partCollection = new List<String>(); var f = files.Where(w=>w[0]!='!'); if(f.Count()<5) return; foreach(String file in f) { XmlDocument xml = new XmlDocument(); xml.Load(f); AppendXML("имя главного файла", xml.DocumentElement.SelectNodes("/press")); File.Move(file, Path.GetDirectoryName(file) + Path.DirectorySeparatorChar + "!" + Path.GetFileName(file)); File.Delete(file); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д