Страницы

Поиск по вопросам

вторник, 9 июля 2019 г.

Переход на каталог ниже или выше

Нужно создать дерево каталогов. Допустим понятно как просмотреть все файлы в каталоге и все папки, а как после просмотра всего этого перейти на каталог выше или ниже ?
string path = Directory.GetCurrentDirectory(); string[] files = Directory.GetFiles(path); string[] directory = Directory.GetDirectories(path); for (int i = 0; i < 10; i++) { label2.Text = label2.Text + files[i].ToString() + "
"; } for (int j = 0; j < 10; j++) { label3.Text = label3.Text + directory[j].ToString() + "
"; }
Не уверен, что верно всё это делаю, но как знаю. И еще вопрос: как определить количество файлов или папок в директории, чтобы прописать его в условии ?


Ответ

Перейти ниже можно получив список папок в текущей директории, что у вас и сделано (Directory.GetDirectories()).
Перейти выше можно, используя свойство DirectoryInfo.Parent
string path = Directory.GetCurrentDirectory(); var info = new DirectoryInfo(path); Console.WriteLine(info.Parent?.Name ?? "this is a root directory");
Однако при построении дерева каталогов переход на каталог выше вам ни к чему. Достаточно обхода вниз. Пример обхода с рекурсией:
public void DirSearch(string path) { try { foreach (string d in Directory.GetDirectories(path)) { foreach (string f in Directory.GetFiles(d)) { Console.WriteLine(f); } DirSearch(d); } } catch (Exception e) { Console.WriteLine(e.Message); } }
...
string path = Directory.GetCurrentDirectory(); DirSearch(path);

Комментариев нет:

Отправить комментарий