Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 19
.NET 4.x

Слияние всех файлов каталога и его подкаталогах в один

03.11.2019, 14:19. Показов 1508. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Необходимо создать форму WinForms при нажатии открывается OpenFileDialog где выбирается каталог в котором есть еще и подкаталоги содержащие txt файлы эти txt файлы необходимо объединить в один и при помощи SaveFile Dialog Сохранить результирующий файл. Просьба подсказать решение!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
03.11.2019, 14:19
Ответы с готовыми решениями:

Вывести имена всех файлов во всех подкаталогах данного каталога
Задание: собрать в один файл имена всех файлов во всех подкаталогах данного каталога

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

Поиск заданной пользователем строки во всех файлах заданного каталога и всех его подкаталогах
Написать скрипт для поиска заданной пользователем строки во всех файлах заданного каталога и всех его подкаталогах (строка и имя каталога...

5
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18285 / 14208 / 5368
Регистрация: 17.03.2014
Сообщений: 28,887
Записей в блоге: 1
03.11.2019, 14:47
Лучший ответ Сообщение было отмечено Oboima007 как решение

Решение

Oboima007, 1) выбираем каталог с помощью OpenFileDialog (лучше бы конечно FolderBrowserDialog использовать) в переменую (для примера) root

2) выбираем имя итогового файла с помощью SaveFileDialog

3) в цикле ищем файлы в каталоге и подкаталогах - foreach (string txtPath in Directory.EnumerateFiles(root, "*.txt", SearchOption.AllDirectories)) и копируем содержимое одного файла в другой используя FileStream.CopyToAsync. Это сработает при условии что все файлы используют одинаковую кодировку. Если в этом нет уверенности, то нужно будет переходить на StreamReader/StreamWriter и добавить определение кодировки входного файла.

Вопросы?
1
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 19
03.11.2019, 17:35  [ТС]
C#
1
2
3
4
5
6
7
8
9
if (folderBrowserDialog.ShowDialog() == DialogResult.OK) {
    var files = Directory.EnumerateFiles(
        folderBrowserDialog.SelectedPath, "*.txt", SearchOption.AllDirectories);
    if (saveFileDialog.ShowDialog() == DialogResult.OK) {
        using (var out_file = new StreamWriter(saveFileDialog.FileName)) {
            foreach (var f in files) out_file.Write(File.ReadAllText(f));
        } 
    }
}

При нажатии на кнопку вставил код , но много ошибок!
0
Администратор
Эксперт .NET
 Аватар для OwenGlendower
18285 / 14208 / 5368
Регистрация: 17.03.2014
Сообщений: 28,887
Записей в блоге: 1
03.11.2019, 18:08
Oboima007, какие именно ошибки?
0
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 19
03.11.2019, 18:17  [ТС]
Ошибки
0
0 / 0 / 0
Регистрация: 27.11.2016
Сообщений: 19
03.11.2019, 18:57  [ТС]
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 private void Button2_Click(object sender, EventArgs e)
        {
            using (FolderBrowserDialog folderBrowserDialog = new FolderBrowserDialog())
            using (SaveFileDialog saveFileDialog = new SaveFileDialog())
            {
                if (folderBrowserDialog.ShowDialog() == DialogResult.OK)
                {
                    var files = Directory.EnumerateFiles(
                        folderBrowserDialog.SelectedPath, "*.txt", SearchOption.AllDirectories);
                    if (saveFileDialog.ShowDialog() == DialogResult.OK)
                    {
                        using (var out_file = new StreamWriter(saveFileDialog.FileName))
                        {
                            foreach (var f in files) out_file.Write(File.ReadAllText(f));
                        }
                    }
                }
 
            }
        }
    }
}
Разобрался и сделал так, но появились и другие вопросы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.11.2019, 18:57
Помогаю со студенческими работами здесь

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

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

Найти суммарный объем всех графических файлов (bmp, jpg), находящихся в каталоге Windows и всех его подкаталогах
Здравствуйте, требуется помощь с задачами, которые нужно выполнить в PowerShell Найти суммарный объем всех графических файлов (bmp,...

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

Вывести список всех файлов в каталоге и его подкаталогах в CSV-файл
Доброго времени суток, мастера! Есть каталог: C:\scan в нем несколько подкаталогов, в каждом из которых некоторое кол-во файлов. ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru