ruby - получить файл из каталога без распечатки всего содержимого - PullRequest
0 голосов
/ 05 марта 2010

Я использую команду split linux для разделения огромных XML-файлов на файлы размером с узел. Проблема в том, что теперь у меня есть каталог с сотнями тысяч файлов.

Мне нужен способ получить файл из каталога (передать другому процессу для импорта в нашу базу данных) без необходимости перечислять все в нем. Это как Dir.foreach уже работает? Есть другие идеи?

1 Ответ

3 голосов
/ 05 марта 2010

Вы можете использовать Dir.glob, чтобы найти нужные вам файлы. Подробнее здесь , но, в основном, вы передаете ему шаблон типа Dir.glob 'dir/*.rb' и получаете имена файлов, соответствующие этому шаблону. Я предполагаю, что это сделано достаточно хорошим способом, но это будет зависеть от вашей платформы и реализации.

Что касается Dir.foreach, то это также должно быть эффективным - проблема заключается в том, нужно ли обрабатывать весь каталог для каждого прохода цикла. Но это было бы ужасной реализацией, а это не так.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...