Как искать только файлы выбранного месяца года в большой папке?

Как искать только файлы выбранного месяца года в большой папке?

У меня есть папка с 30 гигабайтами медиафайлов. Требуется несколько часов, чтобы отсортировать их по "дате", чтобы разбить их на новые папки "год_месяц". Как мне искать / отфильтровывать только выбранный месяц года в большом списке файлов?

Ответы ответившим

В ответ на ответ о добавлении библиотек:

ОтПоказать библиотеки в проводнике:

Чтобы отобразить библиотеки в проводнике, выберите вкладку Вид, а затем выберите Панель навигации > Показать библиотеки.

Если я расположу в библиотеке по дням:

введите описание изображения здесь

Я вижу только ту же дату 05.08.2023 в колонке «Datum» библиотеки:

введите описание изображения здесь

Но я обнаружил, что эта же неправильная дата уже есть в папке Backup, поэтому библиотека не может быть лучше той, что есть в данных:

введите описание изображения здесь

Хотя у меня есть старый скриншот из Ask Different Stack ExchangeПочему мне приходится повторять попытку копирования много раз и с большим количеством ошибок, чтобы переместить гигабайты файлов изображений и видео с iPhone 7 на ПК с Windows?(что вообще заставило меня задать здесь этот вопрос)

где вы видите, что данные HEIC содержали и другие даты:

введите описание изображения здесь

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

Хотя столбец «Datum» в папке iPhone, отображаемой в Windows, содержит истинные даты, просмотрите те же файлы еще раз:

введите описание изображения здесь

Это означает, что резервная копия переопределила даты и что трюк с библиотекой для быстрой индексированной сортировки путем выбора "упорядочить по месяцам" должен сработать. Вот почему я принимаю это.

решение1

Если папка индексирована, вы можете создать новую библиотеку из папки. Хотя многие игнорируют библиотеки, они предлагают Arrange by >функциональность из фонового контекстного меню, которое часто предоставляет все необходимые вам функции поиска.

Различные типы библиотек или шаблоны предлагают различные Arrange by >варианты. Для ваших нужд, даже если ваши файлы являются медиа, используйте шаблон, Picturesкоторый он предлагает Monthи отображает "стеки" (виртуальные папки) для каждой группы месяцев/годов, как показано на этом снимке экрана:

введите описание изображения здесь

Затем, чтобы скопировать/переместить файлы, дважды щелкните по стопке, чтобы открыть ее, нажмите ctrl«+» A, чтобы выбрать все, и скопируйте/переместите нужные файлы.


Редактировать: Arrange by >Параметры различаются в зависимости от типа библиотеки, которые похожи на FolderTypes. Если вы не видите вариантов:

  • Month
  • Day
  • Rating
  • Tag то ваша библиотека не оптимизирована для изображений. Это можно изменить через диалоговое окно библиотеки Properties:

введите описание изображения здесь

Это должно подойти вам, если, как я подозреваю, Datumэквивалентно столбцу Dateв англоязычной версииИсследователь. Это довольно уникальное свойство, поскольку оно не является ни свойством файловой системы,НИМетаданные Exif хранятся в файле, а скорее динамическое свойство, определяемое типом файла и тем, Date Takenприсутствуют ли в файле метаданные, например. См. мой ответздесьдля получения дополнительной информации. Как показывает связанная документация в этом ответе, полное имя свойства — System.ItemDate, и это то же самое свойство, которое библиотека оптимизировала для Pictuesиспользования в стеке по месяцам:

введите описание изображения здесь



Редактировать: Устранение неполадок


Скопируйте и вставьте этот код вPowerShellокно для возвратаКаноническое имясвойств, выбранных в качестве столбцов сортировки в одном или нескольких открытыхИсследовательокна:

@((New-Object -Com shell.application).Windows()).ForEach{ Echo ('{0}Window Title   :{1,30}{0}Sort Column(s) :{2,30}{0}' -f "`n`t", $_.LocationName, $_.Document.SortColumns)}

Выход:

PS C:\> @((New-Object -Com shell.application).Windows()).ForEach{ Echo ('{0}Window Title   :{1,30}{0}Sort Column(s) :{2,30}{0}' -f "`n`t", $_.LocationName, $_.Document.SortColumns)}

        Window Title   :                      Pictures
        Sort Column(s) :        prop:-System.ItemDate;

PS C:\>

Выполните код в папке с картинками, затем снова после перехода в библиотеку. Свойства те же???

решение2

Поиск по шаблону [поле:месяц год] (работает только для небольших выборок)

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

[column name]:[month in letters] [year]

Пример на немецком языке:

  • Янв 2023 / Янв 2023
  • Фев 2023 / Февраль 2023
  • Март 2023
  • Апрель 2023 г. / Апрель 2023 г.
  • ...

Марки:

введите описание изображения здесь

В меню поиска вы можете найти множество других шаблонов, например, этот месяц, прошлый месяц и т. д., и если вы нажмете на них, вы также увидите их код в строке поиска, готовый к дальнейшей настройке:

введите описание изображения здесь

Чтобы вы могли нажать на «Änderungsdatum: letzten Monat», которая является «датой изменения» последнего месяца (имеется в виду не месяц назад, а последний календарный месяц):

введите описание изображения здесь

И поскольку мне это нужно для другого поля/столбца, а не для «даты изменения», я могу изменить его на столбец «datum»:

введите описание изображения здесь

Похоже, это не работает с большими списками файлов.

Как ни странно, это, похоже, работает не со всеми файлами, поскольку мой фильтр по «Августу 2023» с его выводом, который я переместил в папку «202308», выглядит следующим образом:

введите описание изображения здесь

Как видно из нескольких примеров изображений этого скриншота, я все еще нахожу другие изображения других месяцев, и оказывается, что этовсеHEIC и несколько изображений JPG (11500 из 12000). Фильтруя внутри этой папки "202308" снова, я получаю только изображения "Aug 2023", таким образом, фильтр каким-то образом работает в результатах поиска, так что он может просто не работать при перемещении этого огромного и, возможно, не полностью загруженного результата поиска в новую папку?!
Затем я подумал, что я мог бы поймать только файлы "datum:aug 2023", когда я не нажимаю Ctrl+A, а отметить первый и последний в этом результате поиска и переместить их только тогда. Но в тесте, когда я отмечал только отфильтрованные файлы результата поиска, было отмечено то же количество файлов, что и количество файлов, которые находятся во всей папке, таким образом, вы, кажется, отмечаетевсефайлов в этой папке, даже если ее результат поискадолженменьше файлов (так как я точно знаю, что не все файлы там были «август 2023»).И это означает, что фильтр поиска не может быть использован для разделения выбранного месяца от другого, к сожалению. Поэтому этот ответ не подходит для больших папок, он работает только для маленьких.
Я продолжил фильтровать другие месяцы и переместил их в их собственную папку year_month, но поскольку все файлы HEIC у меня были в этой папке "202308", я не нашел никаких изображений HEIC. Фильтр нашел только несколько файлов MOV и JPG:

введите описание изображения здесь

Я все равно пошел дальше, чтобы хотя бы переместить те файлы, которые удалось найти, чтобы размер большой папки уменьшился хотя бы немного. Теперь мне еще нужно отсортировать оставшиеся 11500 файлов по "datum", что займет часы. Странный баг.

Таким образом, я до сих пор не нашел способа отфильтровать эти месяцы изображений HEIC и других из этого большого списка файлов; из ~12000 файлов в одной папке по-прежнему находится ~11500 изображений HEIC/PNG/JPG.

Разделить по имени файла

Так как у меня была папка, в которой были объединены все ежемесячные папки моего iPhone с большим количеством дубликатов в именах, я в итоге переместил каждый файл с пометкой «(2)» в новую папку и продолжил с другими маркерами, таким образом, начав разделение по имени, а затем отсортировав меньшую выборку (тогда всего 1300 файлов) по столбцу даты:

введите описание изображения здесь

Это сработало, сортировка больше не занимала много времени, и я смог разбить эти файлы по ежемесячным подпапкам.

Переместить небольшие выборки из 1000–2000 файлов в другую папку.

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

Запрограммируй это

Я много раз имел дело с файлами в Python, и с библиотекой pathlib должно быть легко прочитать "datum" и переместить его в папку year_month без каких-либо действий вручную. Я не тратил время, но это должно быть лучшим способом, чем сотни раз перемещать файлы в нужные ежемесячные папки.

Связанный контент