Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 17

Разработать функцию, которая по адресу папки выводит на экран список всех файлов в этой папке и из всех ее подпапках

06.12.2020, 20:56. Показов 3348. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно разработать функцию, которая по адресу папки выводит на экран список всех файлов в этой папке и из всех ее подпапках.
Знаю как получить список файлов в папке, список папок в папке, но что дальше?
Помогите пожалуйста

Список файлов в папке:
C#
1
2
3
4
5
6
7
8
9
10
11
12
string[] allfiles = Directory.GetFiles(PathToFolder);
foreach (string filename in allfiles)
{
    Console.WriteLine(filename);
}
 
Список папок в папке:
string[] allfolders = Directory.GetDirectories(PathToFolder);
foreach (string folder in allfolders)
{
    Console.WriteLine(folder);
}
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.12.2020, 20:56
Ответы с готовыми решениями:

Написать программу, которая выводит на экран список всех файлов
Написать программу, которая выводит на экран список всех файлов текущего каталога с датой и временем их последнего обновления.

Написать программу, которая выводит на экран список всех файлов и каталогов
Написать программу, которая выводит на экран список всех файлов и каталогов, содержащихся в каталоге указанном в командной строке,...

Приложение, которое по введенному адрессу папки выведет на экран все файлы в этой папке и подпапках
разработать приложение,которое по введенному адрессу папки выведет на экран все файлы в этой папке и под папках.нужно разработать с помощью...

9
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,140
Записей в блоге: 2
06.12.2020, 21:04
Цитата Сообщение от Dvelp Посмотреть сообщение
но что дальше?
Дальше или рекурсия, или очередь, или стек.
Что из этого проходили и умете пользоваться?
0
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 17
06.12.2020, 21:05  [ТС]
Рекурсией нужно, но я это не до конца еще изучил(((
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,140
Записей в блоге: 2
06.12.2020, 21:15
Цитата Сообщение от Dvelp Посмотреть сообщение
Рекурсией нужно, но я это не до конца еще изучил(((
Для начала загоняете свой код в метод.
Метод получает имя начальной папки.
Если нужно настроить ступенчатый вывод, то и уровень вложения.
В самом методе в цикле выводящем папки, после вывода папки вызывает сам метод с добавлением уровня.

Добавлено через 6 минут
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        public void DirConsole(string pathToFolder)
        {
            Dir(pathToFolder, 0);
 
            void Dir(string nameFolder, int level)
            {
                string[] allfiles = Directory.GetFiles(nameFolder);
                foreach (string filename in allfiles)
                {
                    Console.WriteLine(new string('\t', level)+filename);
                }
 
                // Список папок в папке:
                string[] allfolders = Directory.GetDirectories(pathToFolder);
                foreach (string folder in allfolders)
                {
                    Console.WriteLine(new string('\t', level)+folder);
                    Dir(folder, level + 1);
                }
            }
        }
0
628 / 392 / 135
Регистрация: 06.03.2017
Сообщений: 1,469
06.12.2020, 21:16
Рекурсивный поиск файлов в C# .NET
0
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 17
06.12.2020, 21:29  [ТС]
А если вылазит ошибка: "Нет метода Main"? Чтобы воспользоваться классом Directory, я подключил пространство имен:
using System.IO;
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,140
Записей в блоге: 2
06.12.2020, 21:40
Цитата Сообщение от Dvelp Посмотреть сообщение
А если вылазит ошибка: "Нет метода Main"?
Значит вы чё-то уже удалили из проекта.
Или неверно создали проект.

Вы должны создать проект типа "Консольное приложение".
В нём будет файл Program и метод Main.

Метод DirConsole вставляете в Program (но не в Main!).
В Main пишите вызов этого метода.

Да - зыбыл. Надо ещё статик добавить к методу, чтобы можно было его из Main вызвать.
C#
1
        public static void DirConsole(string pathToFolder)
0
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 17
06.12.2020, 22:05  [ТС]
Но нужно ведь еще метод Main ввести, разве нет?
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
class Program
    {
        static void Main(string[] args)
        {
            public static  void DirConsole(string pathToFolder)
            {
                Dir(pathToFolder, 0);
 
                void Dir(string nameFolder, int level)
                {
                    string[] allfiles = Directory.GetFiles(nameFolder);
                    foreach (string filename in allfiles)
                    {
                        Console.WriteLine(new string('\t', level) + filename);
                    }
 
                    // Список папок в папке:
                    string[] allfolders = Directory.GetDirectories(pathToFolder);
                    foreach (string folder in allfolders)
                    {
                        Console.WriteLine(new string('\t', level) + folder);
                        Dir(folder, level + 1);
                    }
                }
            }
        }
    }
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16150 / 11271 / 2890
Регистрация: 21.04.2018
Сообщений: 33,140
Записей в блоге: 2
06.12.2020, 22:13
Цитата Сообщение от Dvelp Посмотреть сообщение
Но нужно ведь еще метод Main ввести, разве нет?
Но метод - это член Program, а не часть Main!
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
    class Program
    {
        static void Main(string[] args)
        {
            Console.Write("Введите полное (включая путь если надо) имя папки: ");
            DirConsole(Console.ReadLine());
 
            Console.Write("Нажмите Enter для выхода из программы.");
            Console.ReadLine();
        }
        public static void DirConsole(string pathToFolder)
        {
            Dir(pathToFolder, 0);
 
            void Dir(string nameFolder, int level)
            {
                string[] allfiles = Directory.GetFiles(nameFolder);
                foreach (string filename in allfiles)
                {
                    Console.WriteLine(new string('\t', level) + filename);
                }
 
                // Список папок в папке:
                string[] allfolders = Directory.GetDirectories(pathToFolder);
                foreach (string folder in allfolders)
                {
                    Console.WriteLine(new string('\t', level) + folder);
                    Dir(folder, level + 1);
                }
            }
        }
    }
0
0 / 0 / 0
Регистрация: 26.11.2020
Сообщений: 17
06.12.2020, 22:18  [ТС]
Точно, спасибо огромное. Синтаксис подводит...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
06.12.2020, 22:18
Помогаю со студенческими работами здесь

Получение всех имен файлов в папке и во вложенных подпапках
public partial class Form1 : Form { public Form1() { InitializeComponent(); } ...

Обрезать имена всех файлов в папке и подпапках до определенного размера
помогите с такой задачкой. мне нужно перебрать все файлы в папке и ее подпапках и обрезать их имя вплоть до заданного количества символов: ...

Проверить и изменить названия всех файлов в текущей папке и подпапках
Работаю в Visual Studio 2012. Собственно, нужно проверить длину имён всех файлов и сократить названия, если они длиннее 20 символов. ...

Построить список полных путей к файлам в указанной папке и всех ее подпапках
​Разработать консольное приложение на C++. В качестве аргументов командной строки приложение получает три параметра: ​Путь к папке ...

Получения всех файлов в папке и подпапках игнорируя ошибку с правами доступа
К слову сам вопрос. Как получить все файлы в папке и подпапках игнорирую ошибку с правами доступа или любую другую


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

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru