Нужно создать дерево каталогов. Допустим понятно как просмотреть все файлы в каталоге и все папки, а как после просмотра всего этого перейти на каталог выше или ниже ?
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);
Комментариев нет:
Отправить комментарий