Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 5.00
Pasha88
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 4
#1

Работа с деревом файлов/директорий - C++

20.08.2012, 17:32. Просмотров 1290. Ответов 6
Метки нет (Все метки)

Подскажите, пожалуйста, как преобразовать список из файлов и папок (гарантируется, что они описывают дерево с одним корнем - корневой директорией) в объект-дерево?
В первой строке n -общее количество файлов и директорий. В каждой из следующих строк - полный путь к файлу или директории, пробел и идентификатор файла или директории. Идентификаторы упорядочены по возрастанию.

пример списка:
tree[0]= "13";
tree[1]= ". 0";
tree[2]= "./download_client.sh 1";
tree[3]= "./random100_queries_sport.txt 2";
tree[4]= "./times.txt 3";
tree[5]= "./site 4";
tree[6]= "./site/site_kz_domains_random1000_2011-07-26.txt 5";
tree[7]= "./site/site_ru_domains_top1000_2011-07-26.txt 6";
tree[8]= "./site/site_by_domains_top1000_2011-07-27.txt 7";
tree[9]= "./site/kz 8";
tree[10]="./site/kz/random1000 9";
tree[11]="./site/kz/random1000/site_kz_random100_2011-07-16.xml 10";
tree[12]="./site/ru 11";
tree[13]="./site/ru/random100 12";
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.08.2012, 17:32     Работа с деревом файлов/директорий
Посмотрите здесь:

Рекурсивная функция вывода всех файлов и директорий - C++
функция ищет все файлы включая директории с набором др. файлов и директорий при этом выводит их на экран. Вместо того, чтобы вывести...

Как написать программу, удаляющую несколько файлов из разных директорий каждые 5 секунд? - C++
Здравствуйте, уважаемы форумчани! Ситуация такая: нужно удалять несколько файлов из разных директории каждые 5 секунд. Подскажите...

Работа с бинарным деревом: добавить элемент, удалить элемент, вывести в виде "дерева" - C++
Создать программу для работы с бинарным деревом, реализующую функции: добавить элемент, удалить элемент, вывести в виде «дерева». В C++ ...

Создание директорий - C++
Здорова господа!!! Мне нужно динамически создавать директории в виндовс, нашол функцию CreateDirectoryW(). Но она работает только...

Сортировка деревом - C++
Программа должна прочитать строку слов из файла и отсортировать деревом. На выходе программа почему-то выдает не N слов из файла в...

Рекурсивный обход директорий - C++
Уважаемые Гуру, требуется ваша помошь. Мне необходимо реализовать рекурсивный обход директорий,начиная с заданной. У меня есть класс с...

Транслитерация названия директорий - C++
Задался вопросом написать функцию транслитерации названия директорий. Написал рекурсивную функцию перебора директорий, все работает. ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
20.08.2012, 18:00     Работа с деревом файлов/директорий #2
Файлы и папки никакими флагами не отличаются что ли?
Считываешь полный путь к файлу или директории в строку, разделяешь ее на подстроки разделителем '/', затем стучишься в объект-дерево - последовательно подставляешь в него (начиная с корня дерева) все полученные подстроки. Если такая подстрока уже существует в дереве, то переходишь в нее, если не существует, то создаешь и переходишь в нее. Затем проверяешь след. подстроку.
Pasha88
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 4
20.08.2012, 18:37  [ТС]     Работа с деревом файлов/директорий #3
Цитата Сообщение от I.M. Посмотреть сообщение
Файлы и папки никакими флагами не отличаются что ли?
Считываешь полный путь к файлу или директории в строку, разделяешь ее на подстроки разделителем '/', затем стучишься в объект-дерево - последовательно подставляешь в него (начиная с корня дерева) все полученные подстроки. Если такая подстрока уже существует в дереве, то переходишь в нее, если не существует, то создаешь и переходишь в нее. Затем проверяешь след. подстроку.
Если есть элемент списка, у которого нет потомков в дереве, то это файл, иначе это директория.

Как вообще это процесс создания объекта в объекте происходит? Очень хотелось бы увидеть хоть подобный пример
I.M.
564 / 547 / 5
Регистрация: 16.12.2011
Сообщений: 1,389
20.08.2012, 18:55     Работа с деревом файлов/директорий #4
C++
1
2
3
4
5
6
7
8
9
class tree
{
public:
//тут публичные функции по работе с объектом дерева
private:
    std::string name_;
    std::vector<tree*> childs_;
    //тут прочие данные, которые нужно хранить внутри объекта
};
fasked
Эксперт С++
4933 / 2513 / 180
Регистрация: 07.10.2009
Сообщений: 4,311
Записей в блоге: 1
20.08.2012, 19:21     Работа с деревом файлов/директорий #5
Цитата Сообщение от Pasha88 Посмотреть сообщение
Если есть элемент списка, у которого нет потомков в дереве, то это файл, иначе это директория.
А как же пустые директории?
Pasha88
0 / 0 / 0
Регистрация: 20.08.2012
Сообщений: 4
20.08.2012, 19:49  [ТС]     Работа с деревом файлов/директорий #6
Цитата Сообщение от fasked Посмотреть сообщение
А как же пустые директории?
Вот условие, пардон, надо было сразу выложить..
Миниатюры
Работа с деревом файлов/директорий  
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.08.2012, 13:25     Работа с деревом файлов/директорий
Еще ссылки по теме:

Сортировка бинарным деревом - C++
Получить число n на ввод; сделать сортировку бинарным деревом и построить дерево графически

Является ли граф деревом - C++
Суть задачи заключается в том, что нужно проверить граф, является ли он деревом. Граф является деревом, если граф - связный и в графе...

Работа с каталогом файлов - C++
Очень нужна помощь!!! Надо написать курсовую, а у меня с Си++ очень большие проблемы :( Задача такова : есть каталог изображений...

Операторы выполняемые над деревом - C++
Не могу разобраться с задачкой. Может кто нибудь поможет? Напишите программу, которая представляет операторы, выполняемые над деревом...

Шаблонные функции работы с деревом - C++
Добрый день. Задача: преобразовать готовые рекурсивные функции работы с деревом в шаблонные. С шаблонами только ещё начал знакомится,...


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

Или воспользуйтесь поиском по форуму:
Masherocka
0 / 0 / 0
Регистрация: 21.08.2012
Сообщений: 5
21.08.2012, 13:25     Работа с деревом файлов/директорий #7
Если эту задачу описать теоретическими словами - то это десериализация структуры данных дерево. То что это файлы и каталоги - не принципиально. Кода в полном решении не на одну страничку. Вот здесь http://www.fulcrumweb.com.ua/archive...fice_test_task разобраны решения похожей по сути задачи. Конечно, формат файла сериализации там другой (ваш список это и есть сериализованное представление дерева), но много идеологически/алгоритмически похожего.
Yandex
Объявления
21.08.2012, 13:25     Работа с деревом файлов/директорий
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru