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

Как получить файлы из всех вложенных каталогов?

20.07.2014, 03:07. Показов 2511. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вообщем, вот кусок кода, допустим есть такой путь C:\папка1\папка2\папка3 , при указании пути на C:\ считываются файлы только из папка1. Помогите сделать, чтобы считывал все файлы начиная с С:\

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
{
            DirectoryInfo diFromDir = new DirectoryInfo(@PathClient);
 
            DirectoryInfo[] diFromArr = diFromDir.GetDirectories();
 
            foreach (DirectoryInfo DirName in diFromArr)
        {
         DirectoryInfo fFromDir = new DirectoryInfo(@PathClient + "/" + DirName);
 
        foreach (FileInfo Fname in fFromDir.GetFiles())
       {
       FileInfo ufInfo = new FileInfo(@PathClient + "\\" + DirName + "\\" + Fname);
 
                    AllFilesSize = AllFilesSize + ufInfo.Length;
                    LB_FULL.Items.Add(DirName + "\\" + Fname);
                    AllFilesCnt++;
                    Properties.Settings.Default.AllFilesCnt = AllFilesCnt;
                }
            }
        }
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2014, 03:07
Ответы с готовыми решениями:

Файлы. ввод и вывод вложенных каталогов...
Сегодня решала такую задачу: дан входной текствоый файл с несколькими строками: bp\bd\catalog bd\lines lines\data Вывести в другом...

Как добавить в вектор содержимое вложенных каталогов
Здравствуйте, подскажите пожалуйста как добавить в вектор содержимое внутренних каталогов, а не только тех которые содержатся в указанной...

Получить список всех вложенных файлов
Доброго времени суток, подскажите пож метод. Необходимо отсортировать файлы проекта, проект-папка, в папке может быть неопределённое...

8
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
20.07.2014, 03:24
Лучший ответ Сообщение было отмечено Ev_Hyper как решение

Решение

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private void Form1_Load(object sender, EventArgs e)
        {
            GetFiles(@"C:\папка1");
        }
 
public void GetFiles(string dir)
        {
            System.IO.DirectoryInfo DirectoryInfo = new System.IO.DirectoryInfo(dir);
            foreach (System.IO.FileInfo FileInfo in DirectoryInfo.GetFiles())
            {
                //Здесь мы выводим информацию о полученном файле
                listBox1.Items.Add(FileInfo.FullName);
            }
            foreach(System.IO.DirectoryInfo Dir in DirectoryInfo.GetDirectories())
            {
                try { GetFiles(Dir.FullName); }
                catch { }
            }
        }
или так

C#
1
string[] files = System.IO.Directory.GetFiles(@"C:\папка1", "*", System.IO.SearchOption.AllDirectories)
1
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 5
20.07.2014, 12:50  [ТС]
Nord790, А как сделать чтобы высвечивался не полный путь, а например от указанной папки. Например указываю на C:\ а в listbox отображается (файлы в C:\),папка1 и файлы в ней\папка2 и файлы в ней и т.д.
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
20.07.2014, 14:02
ну если начать с C:\ то, он будет перечислять все файлы которые есть на C:\ а так же во всех под папках, тогда проще сделать в начале перечислить все файлы которые есть на C:\ а потом уже перечислять все файлы которые есть в папке C:\папка1 и т.д

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
  private void Form1_Load(object sender, EventArgs e)
        {
            //Перечисляем все файлы которые есть на C:\
            foreach(System.IO.FileInfo FileInfo in new System.IO.DirectoryInfo(@"C:\").GetFiles())
            {
                listBox1.Items.Add(FileInfo.FullName);
            }
           
            //А потом уже в папке C:\папка1
            GetFiles(@"C:\папка1");
        }
 
        public void GetFiles(string dir)
        {
            System.IO.DirectoryInfo DirectoryInfo = new System.IO.DirectoryInfo(dir);
            foreach (System.IO.FileInfo FileInfo in DirectoryInfo.GetFiles())
            {
                //Здесь мы выводим информацию о полученном файле
                listBox1.Items.Add(FileInfo.FullName);
            }
            foreach (System.IO.DirectoryInfo Dir in DirectoryInfo.GetDirectories())
            {
                try { GetFiles(Dir.FullName); }
                catch { }
            }
        }
1
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 5
20.07.2014, 14:40  [ТС]
А путь все равно пишется полный, C:\Documents\123\555\999, а надо если я указываю на папку 123, то пишется в listbox
123\1.txt
123\555\2.txt
123\555\999\3.txt
0
Строитель
 Аватар для Nord790
889 / 556 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
20.07.2014, 15:02
мож так
C#
1
2
3
4
5
6
7
8
9
10
 string Path = @"C:\Documents\123\555\999";
            int StartIndex = 0;
            while (true)
            {
                StartIndex = Path.IndexOf("\\", StartIndex) + 1;
                if (StartIndex == 0) { break; }
                string Result = Path.Substring(0, StartIndex);
                if (System.IO.Directory.Exists(Result))
                    foreach (string file in System.IO.Directory.GetFiles(Result, "*")) { listBox1.Items.Add(file); }
            }
1
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 5
20.07.2014, 15:31  [ТС]
Указал я путь @"C:\Documents and Settings\123\222\333\444\555\666"
Считал все файлы с C:\до 333 а нужно считать с 333

Добавлено через 9 минут
Вот полный исходник этот фрагмент кода в Step 2 и Step 3
Вложения
Тип файла: rar BuilderGameUpdate.rar (655.5 Кб, 13 просмотров)
0
0 / 0 / 0
Регистрация: 20.07.2014
Сообщений: 5
21.07.2014, 17:12  [ТС]
Проблема решена. Тему можно удалить.Nord790, спасибо за уделенное мне время.
0
0 / 0 / 0
Регистрация: 12.02.2019
Сообщений: 1
12.02.2019, 17:55
Проблема решена. Тему можно удалить.Nord790, спасибо за уделенное мне время.

ну так напиши решение
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
12.02.2019, 17:55
Помогаю со студенческими работами здесь

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

Получить список файлов из папки и всех вложенных подпапок
Здравствуйте! Из выбранной папки надо в файл записать папки и файлы. Вот код Dim FBD As New FolderBrowserDialog If...

Требуется получить список всех вложенных папок (с полными их путями) в данной локальной папке.
Требуется получить список всех вложенных папок (с полными их путями) в данной локальной папке. Заранее спасибо.

Копирование всех каталогов с одним заданным именем из множества неизвестных каталогов
Всем добрый день. Сложилась необходимость создания бекапа определенной папки в пользовательских папках на терминальном сервере. Итак,...

Удаление вложенных каталогов и файлов согласно спискам
Прошу помощи. Задача такая: Есть структура каталогов (во вложении) Нужно – во всех каталогах уровня 0 (Dir0№) удалить все каталоги...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru