Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 5

Заполнение xml файла из списка путей к файлам и папкам

21.01.2016, 04:32. Показов 2603. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Суть проблемы: имеется список с полными путями к файлам и папкам, типа:
D:\Test
D:\Test\New text document.txt
D:\Test\FOLDER1
D:\Test\FOLDER1\New text document.txt
D:\Test\FOLDER1\New text document(1).txt
D:\Test\FOLDER1\FOLDER11
D:\Test\FOLDER2
D:\Test\FOLDER2\FOLDER21
и так далее.
Необходимо заполнить xml файл таким образом что бы отразить иерархию файлов и папок в системе.
Проще: есть коллекция List<string>, которая хранит полные пути к файлам и папкам, так вот необходимо заполнить xml файл данными из этой коллекции.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
21.01.2016, 04:32
Ответы с готовыми решениями:

Заполнение TreeView из списка путей к файлам и папкам
Суть проблемы: имеется список с полными путями к файлам и папкам, типа: D:\Test D:\Test\New text document.txt D:\Test\FOLDER1 ...

Создание файла со списком путей к файлам
Привет парни! Помогите с темой: 1. Нужно создать файл следующей структуры: Имя Путь К примеру: Калькулятор

запись в лог путей к пустым папкам
Добрый день! Столкнулся с проблемой в создании скрипта, который проверит папку D:\OB и все её подпапки (4 уровня вложенности) на...

2
Эксперт .NETАвтор FAQ
 Аватар для Storm23
10425 / 5155 / 1825
Регистрация: 11.01.2015
Сообщений: 6,226
Записей в блоге: 34
21.01.2016, 14:12
Лучший ответ Сообщение было отмечено Mishanovskiy как решение

Решение

Цитата Сообщение от Mishanovskiy Посмотреть сообщение
есть коллекция List<string>, которая хранит полные пути к файлам и папкам, так вот необходимо заполнить xml файл данными из этой коллекции.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
using System.Xml;
 
namespace WindowsFormsApplication327
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            var list = new List<string>
                           {
                               @"D:\Test",
                               @"D:\Test\New text document.txt",
                               @"D:\Test\FOLDER1",
                               @"D:\Test\FOLDER1\New text document.txt",
                               @"D:\Test\FOLDER1\New text document(1).txt",
                               @"D:\Test\FOLDER1\FOLDER11",
                               @"D:\Test\FOLDER2",
                               @"D:\Test\FOLDER2\FOLDER21"
                           };
 
            var doc = new XmlDocument();
            BuildTree(doc, list);
 
            doc.Save("c:\\temp.xml");
        }
 
        private void BuildTree(XmlDocument doc, IEnumerable<string> list)
        {
            foreach(var path in list)
            {
                XmlNode child = doc;
                foreach (var part in path.Split(Path.DirectorySeparatorChar))
                    child = FindOrCreateNode(doc, child, part);
            }
        }
 
        private XmlNode FindOrCreateNode(XmlDocument doc, XmlNode root, string name)
        {
            foreach(XmlNode node in root.ChildNodes)
                if(node.Attributes["id"].Value == name)
                    return node;
            var res = doc.CreateNode(XmlNodeType.Element, "item", "");
            res.Attributes.Append(doc.CreateAttribute("id"));
            res.Attributes["id"].Value = name;
            root.AppendChild(res);
            return res;
        }
    }
}
Результат:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
<item id="D:">
  <item id="Test">
    <item id="New text document.txt" />
    <item id="FOLDER1">
      <item id="New text document.txt" />
      <item id="New text document(1).txt" />
      <item id="FOLDER11" />
    </item>
    <item id="FOLDER2">
      <item id="FOLDER21" />
    </item>
  </item>
</item>
3
0 / 0 / 0
Регистрация: 20.01.2016
Сообщений: 5
22.01.2016, 00:00  [ТС]
Спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.01.2016, 00:00
Помогаю со студенческими работами здесь

Системные константы для получения путей к папкам
Какой код чтоб допустим узнать папку %ProgramData% %ProgramFiles% %WinDir% &amp;UserProfile&amp; %SystemDrive% как вычести эти значения в стринг?...

Ко всем файлам добавилось .xml, теперь они в формате ***.xls.XML, ***doc.XML (изначально в Word и Excel)
при копировании с одного ноутбука на другом (изначально на новом не было офиса, м.б. из-за этого файлы так перенаименовались) они появились...

Доступ к файлам и папкам
В компьютере у меня закрыт доступ ко многим файлам и папкам. А как его открыть я никак не пойму. Это очень тормозит работу на компьютере....

Доступ к файлам и папкам
Добрый день! Подскажите пожалуйста как сделать на терминальнос сервере 2003R2 есть на диске С папка test в ней находятся три папки...

Путь к папкам и файлам в папке.
Каким образом получить путь текущего каталога? Application.StartupPath? private void Form1_Load(object sender, EventArgs e) ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru