Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
 Аватар для antsa
19 / 19 / 4
Регистрация: 04.07.2010
Сообщений: 86

Как быстро прочитать много текстовых файлов в папке

10.01.2013, 13:44. Показов 2462. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый.
Столкнулся с проблемой, в папке очень много xml файлов (около 1000). Нужно быстро сделать по ним выборку.
Почитал что быстрее работает с xml, вот здесь есть сравнение LINQ to XML, XmlDocument и XmlReader. XmlReader оказался быстрее, я остановился на нем, все реализовал как нужно и на отлично. Но! Файлы в паке нужно тоже как то перебирать сделал два варианта, так:

C#
1
2
3
4
5
DirectoryInfo dirInfo = new DirectoryInfo(Path);
foreach (FileInfo file in dirInfo.GetFiles())
{
   //работа с xml файлом
}
и еще так:

C#
1
2
3
4
5
string[] FullNameFiles = System.IO.Directory.GetFiles(Path);
for (int i = 0; i < FullNameFiles.Length;i++ )
{
   //работа с xml файлом
}

Но должен сказать for не намного быстрее чем foreach, может System.IO.Directory.GetFiles медленно работает?
У меня вопрос в следующем, форумчане, подскажите как быстрее перебрать эти файлы? Можно ли оптимизировать эту часть?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.01.2013, 13:44
Ответы с готовыми решениями:

Как прочитать много текста?
Всем здравствуйте, возникла у меня такая проблема: надо мне прочитать большой кусок текста,такой, что в одну переменную не влезает, скажем...

Как быстро соединить много csv Файлов?
Как быстро соединить много csv Файлов? Данных в таблицах много, но количество столбцов одинаково.

Как из текстовых файлов прочитать нужные строки
Всем привет! Вопрос по VBA - EXCEL На C:\ имею *.txt файлы (прикреплены) Из этих файлов необходимо вытащить строки, начинающиеся с...

2
Эксперт Java
 Аватар для turbanoff
4094 / 3828 / 745
Регистрация: 18.05.2010
Сообщений: 9,331
Записей в блоге: 12
10.01.2013, 14:19
Можно, например, использовать EnumerateFiles, вместо GetFiles. Это избавит от необходимости выделения памяти под большой массив.

Очень сомневаюсь, что медленная работа связано с GetFiles. Попробуйте прогнать программу под профайлером.
0
 Аватар для antsa
19 / 19 / 4
Регистрация: 04.07.2010
Сообщений: 86
10.01.2013, 14:30  [ТС]
Ну у меня 1000 достаточно громоздких XML файлов обрабатывается за 1.8 секунды на Core 2 Duo T5450 1.6GHz и 2Gb ОЗУ (замерял через Stopwatch). Вроде бы не медленно, просто хочется еще быстрее. А про профайлеры я вообще не знал. Щаз разберусь с ними и посмотрю.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.01.2013, 14:30
Помогаю со студенческими работами здесь

Создание текстовых файлов в папке
Не пойму один момент, знаю как делать входные выходные типа txt, нужно сделать типа in/out, как создать такой файл в папке с программой?

Создание текстовых файлов в папке с программой
Я сделал окно, сделал на нем кнопки, при нажатии на которые создаются разные текстовые файлы. Вопрос такой: как мне сделать так, чтобы...

Слить много текстовых файлов в несколько, по названию
Задача: есть несколько папок с текстовыми файлами .doc ( внутри одной папки названия файлов вида :&quot; число, буквы&quot; ,...

Поменять кодировку всех текстовых файлов в папке
Есть папка: E:\temp. В ней лежат текстовые лог файлы. Необходимо поменять разом кодировку всех файлов в паке. Как поменять кодировку в...

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru