Страница 1 из 4

Найти папки с большим кол-ством файлов, находимых при поиске

Добавлено: Вс июн 05, 2016 19:18
Hjkma
Суть таковая. При поиске по маскам находятся сотни тысяч файлов. Мне нужно узнать какие папки больше среди всех содержат у себя файлы, которые находятся в поиске, а какие содержат меньше. Думается решение находится в том, что я создаю в панели результатов поиска в файл-список путем выделения в ней всех файлов и сохранения имен и путей в текстовый файл. А потом этот файл-список нужно обработать так, чтобы на выходе вышел бы текстовый файл со списком папок, отсортированных от большего к меньшему и с указанием количества файлов. Но может есть другой путь решения этой задачи. Премного благодарен, если найдется решение.

Добавлено: Вс июн 05, 2016 19:28
Flasher
ОК. Размер в каком формате выводить? Байты, Кб, Мб, Гб, Тб, пробелы в них?

Добавлено: Вс июн 05, 2016 19:31
Hjkma
Flasher
Размер чего? Папок? Если да, то можно обойтись без этого. Ну или тогда Мб. Главное - количество файлов.

Добавлено: Вс июн 05, 2016 19:36
Flasher
Hjkma
Я уже понял, что спутал. Только кол-во. ОК.

Добавлено спустя 4 минуты:

Только я не понял, зачем файлы то выделять? Нам же папки нужны.
Поиск в ТС не нужен. Просто по всей структуре или в выбранных папках скрипт сам всё найдёт.

Добавлено: Вс июн 05, 2016 19:47
Hjkma
Flasher
Ну мне это так видится чтобы оперировать с файл-списком, чтобы скрипт в нем убирал бы имена файлов и папки уровнях выше, чтобы оставались только папки последнего уровня, которые и вмещают эти искомые файлы. А потом скрипт должен считать количество этих папок в файл-списке, всего-то. Ну и преобразовать в список папок, отсортированных по кол-ству упоминаний в файл-списке от большего к меньшему и желательно добавить эту самую цифру "повторов имен папок" в файл-списке, которое по сути равно кол-ству файлов.
Например есть папки
D:\папка1\папка2\папка3\файл1.jpg
D:\папка1\папка2\папка3\файл2.jpg

D:\папка4\папка5\папка6\файл1.jpg
D:\папка4\папка5\папка6\файл2.jpg

Убираются D:\папка1\папка2\ и \файл1.jpg и D:\папка4\папка5\ и \файл1.jpg

Остаются
папка3
папка6
Вот скрипт и должен считать кол-ство повторов этих названий папок в файл-списке, ну в общем как-то оперировать с полученным списком. Так мне видится.
Но если вы видите другой путь, то ваше право действовать как нужно, конечно.

Добавлено: Вс июн 05, 2016 19:59
Flasher
Hjkma
Что будет делать скрипт в технологическом отношении - это уже моя забота. Здесь же достаточно только задания.
Но с учётом новых условий я не могу понять, какой прок от имён папок без относительных путей, если сортировка собъёт последовательность? И куда в случае сортировки можно писать одноимённые папки и число повторов? В единый список это по всей логике не поместишь.

Добавлено: Вс июн 05, 2016 20:04
Hjkma
Flasher
Полный путь папок не нужен, достаточно просто названия папок. Названия папок и число повторов можно просто сделать нумерованным списком и убрав все остальное из файла-списка. Или можно сделать новый файл.

Добавлено: Вс июн 05, 2016 20:08
Flasher
Hjkma
Так. Нужно тогда уточнить, как формируется число? Если среднее арифметическое у одноимённых папок или сумма в них, то с сортировкой проблем не будет, а если каждой папки в отдельности, то какой смысл их объединять под одним именем (указание числа и сортировка будут невозможны)?

Добавлено: Вс июн 05, 2016 20:14
Hjkma
Flasher

Число всего "упоминания" в файл-листе. Если например название папки "Кафе" встречается в тексте 37 раз, то соответственно в ней 37 файлов. И тогда в списке это будет например "Папка "Кафе" - 37 файлов". Это невозможно так сделать? Если дело в сортировке от большего к меньшему, то можно обойтись без этого. Тогда нужно сделать так чтобы число "упоминаний" было первым в строке, тогда через текстовый редактор можно и так легко отсортировать от большего к меньшему.

Добавлено: Вс июн 05, 2016 20:20
Flasher
Hjkma
А-а-а-а... Т.е. нужно найти папки, в которых пападаются любые (или все?) файлы по маске безотносительно их кол-ва. Тогда ясно.

Добавлено: Вс июн 05, 2016 20:29
Hjkma
Flasher
Не так, мне нужно узнать кол-ство файлов, которые находятся при поиске, у папках, которые их вмещают. Чтобы узнать какие папки больше вмещают у себя те файлы, которые находятся в поиске по заданным ключевым запросам, а какие меньше всего вмещают. Так сказать узнать "рейтинг" папок по кол-ству нужных мне файлов.

Добавлено: Вс июн 05, 2016 20:33
Flasher
Hjkma
В случае если в маске указано несколько файлов, то нельзя объединять число одноимённых папок, т.к. число файлов в них может не совпасть (в одной один файл, в другой - два и т.д.).

Добавлено: Вс июн 05, 2016 20:40
Hjkma
Flasher
Я вас не понял. Вы говорите про то, что могут быть разные папки, но с одним названием, т.е. одноименные? Если да, то у меня все папки имеют уникальные названия и не повторяются.

Добавлено: Вс июн 05, 2016 20:44
Flasher
Hjkma
Это кто ж кого больше не понял - ещё вопрос. Это что значило?:
Hjkma писал(а):Если например название папки "Кафе" встречается в тексте 37 раз

Добавлено: Вс июн 05, 2016 20:54
Hjkma
Flasher
Поясню на примере. Осуществляю поиск по ключевым словам (а ищу я имя и фамилию) конкретно в папке "Кафе" и там находится 3 файлов, которые соответствуют поисковым запросам. Их всех выделяю в файл-лист.
Будет что-то типа
D:\User\Рабочий стол\Фото\Кафе\Владимир.jpg
D:\User\Рабочий стол\Фото\Кафе\Игорь.jpg
D:\User\Рабочий стол\Фото\Кафе\Саша.jpg

Убираем скриптом, которые убирает папки уровнях выше и названия файлов. Остается только та последняя папка, в которых и содержатся искомые файлы.

D:\User\Рабочий стол\Фото\ и Владимир.jpg
D:\User\Рабочий стол\Фото\ и Игорь.jpg
D:\User\Рабочий стол\Фото\ и Саша.jpg

Останутся
Кафе\
Кафе\
Кафе\

Скрипт вычисляет количество повторов и получает цифру 3 и это и есть кол-ство файлов.