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

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

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

Author24 — интернет-сервис помощи студентам
Вообщем, вот кусок кода, допустим есть такой путь 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)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2014, 03:07
Ответы с готовыми решениями:

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

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

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

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

8
Строитель
885 / 552 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
20.07.2014, 03:24 2
Лучший ответ Сообщение было отмечено 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  [ТС] 3
Nord790, А как сделать чтобы высвечивался не полный путь, а например от указанной папки. Например указываю на C:\ а в listbox отображается (файлы в C:\),папка1 и файлы в ней\папка2 и файлы в ней и т.д.
0
Строитель
885 / 552 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
20.07.2014, 14:02 4
ну если начать с 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  [ТС] 5
А путь все равно пишется полный, C:\Documents\123\555\999, а надо если я указываю на папку 123, то пишется в listbox
123\1.txt
123\555\2.txt
123\555\999\3.txt
0
Строитель
885 / 552 / 194
Регистрация: 01.04.2014
Сообщений: 610
Записей в блоге: 6
20.07.2014, 15:02 6
мож так
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  [ТС] 7
Указал я путь @"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  [ТС] 8
Проблема решена. Тему можно удалить.Nord790, спасибо за уделенное мне время.
0
0 / 0 / 0
Регистрация: 12.02.2019
Сообщений: 1
12.02.2019, 17:55 9
Проблема решена. Тему можно удалить.Nord790, спасибо за уделенное мне время.

ну так напиши решение
0
12.02.2019, 17:55
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2019, 17:55
Помогаю со студенческими работами здесь

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru