Created
December 25, 2022 16:26
-
-
Save EvilBeaver/eb0790e228990d8db3e0d736db87a21c to your computer and use it in GitHub Desktop.
Скинул фотки с телефона в кучу, запустил скрипт, отсортировал по годам и месяцам
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#Использовать fs | |
#Использовать progbar | |
Процедура ВыполнитьСортировку(Знач ИсходныйПуть) | |
ПрогрессБар = Новый ПрогрессБар(); | |
ВсеФайлы = НайтиФайлы(ИсходныйПуть, ПолучитьМаскуВсеФайлы(), Ложь); | |
Таблица = Новый ТаблицаЗначений(); | |
Таблица.Колонки.Добавить("Ключ", Новый ОписаниеТипов("Дата")); | |
Таблица.Колонки.Добавить("Год"); | |
Таблица.Колонки.Добавить("ГодМесяц"); | |
Таблица.Колонки.Добавить("Файл"); | |
Сообщить("Сортирую файлы"); | |
ШагиПрогресса = Новый Соответствие(); | |
Для Каждого Файл Из ВсеФайлы Цикл | |
ДатаФайла = Файл.ПолучитьВремяИзменения(); | |
СтрФайл = Таблица.Добавить(); | |
СтрФайл.Год = Формат(ДатаФайла, "ДФ='гггг'"); | |
СтрФайл.ГодМесяц = Формат(ДатаФайла, "ДФ='MMММ гггг'"); | |
СтрФайл.Ключ = НачалоМесяца(ДатаФайла); | |
СтрФайл.Файл = Файл; | |
ШагиПрогресса.Вставить(СтрФайл.ГодМесяц); | |
КонецЦикла; | |
Таблица.Сортировать("Ключ"); | |
ПрогрессБар.Начать(ШагиПрогресса.Количество()); | |
Попытка | |
ТекущийКлюч = Неопределено; | |
Для Каждого СтрФайл Из Таблица Цикл | |
Если СтрФайл.Ключ <> ТекущийКлюч Тогда | |
ПрогрессБар.СделатьШаг(,, СтрФайл.ГодМесяц); | |
ТекущийКлюч = СтрФайл.Ключ; | |
КонецЕсли; | |
ЦелевойКаталог = ОбъединитьПути(ИсходныйПуть, СтрФайл.Год, СтрФайл.ГодМесяц); | |
ФС.ОбеспечитьКаталог(ЦелевойКаталог); | |
ПереместитьФайл(СтрФайл.Файл.ПолноеИмя, ОбъединитьПути(ЦелевойКаталог, СтрФайл.Файл.Имя)); | |
КонецЦикла; | |
Исключение | |
ПрогрессБар.Завершить(); | |
ВызватьИсключение; | |
КонецПопытки; | |
ПрогрессБар.Завершить(); | |
КонецПроцедуры | |
Если Не АргументыКоманднойСтроки.Количество() Тогда | |
Сообщить("Нужно указать путь к сортируемой папке"); | |
ЗавершитьРаботу(1); | |
КонецЕсли; | |
ВыполнитьСортировку(АргументыКоманднойСтроки[0]); | |
Сообщить("Обработка завершена"); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment