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

Диалог "Выделение дубликатов" работает с ошибкой

Добавлено: Чт июл 18, 2024 16:51
woldemar
Итак, пример,есть 5 одинаковых файла (дубля) с разными датами (аттрибут), переходим к диалогу "выдление дубликатов". Первой опцией стоит сравнение "самый новый", я ожидал что НЕ будет выделен "самый новый" (в моем примере - 5 ый), но выделяется почему-то 2-ой.

листинг вывода файлов с датами, видно что даты отличаются на секунды, но отличаются.

Код: Выделить всё

PS D:\test1> Get-ChildItem *.mpeg | Select-Object -Property Name,LastWriteTime

Name            LastWriteTime
----            -------------
f173058107.mpeg 28.11.2019 16:54:27
f299830243.mpeg 28.11.2019 16:54:28
f301939179.mpeg 28.11.2019 16:54:31
f546765587.mpeg 28.11.2019 16:54:32
f576575363.mpeg 28.11.2019 16:54:33
Если грубо даты изменить например +1 год, то все отрабатывает правильно.

Сначала подумал что алгоритм сравнивает до минут, но тогда бы он выбрал 1ый файл . Есть идеи ? или баг ?

Добавлено: Чт июл 18, 2024 17:29
Avada
woldemar
Вы эти файлы с разным временем (даты у них одинаковые) как получили, прежде чем вывести диалог выделения дубликатов? (Это для попытки воспроизведения.) И почему вы полагаете, что при сравнении "до минут" (то есть без учёта секунд, надо полагать) был бы выбран первый файл, если дата и время абсолютно одинаковы?
Кроме того, ваш заголовок не соответствует правилам форума, поскольку название диалога — это не описание проблемы.

Добавлено: Чт июл 18, 2024 17:51
woldemar
Avada
alt-F7 -> дополнительно -> поиск дубликатов -> по содержимому (а разве их можно как-то по другому получить?)

согласно документации алгоритм работает так - 3 условия, какое первое отработает такой файл и будет выбран, у меня стоит по умолчанию
1. самый новый
2. самый новый
3. первый в группе

первые два условия - допустим, алгоритм видит что даты одинаковые, и новых он найти не может, то остается 3 ий, выбирает 1-ый файл в списке.

сейчас затестил, 3 условие выбрал "последний в группе", не выделенным остался последний - 5 ый файл, а он у нас попадает под два критерия, он последний в списке (группе), и самый новый.

Добавлено: Пт июл 19, 2024 05:59
Avada
woldemar
Искать можно по-всякому (в т.ч и с плагинами). А у вас на выходе поиска имеются насколько понимаю, одинаковые по содержимому и именам файлы, отличающиеся только секундами во времени.
Пока что по умолчанию остаётся невыделенным третий файл. Но там ещё могут учитываться пути в результатах поиска, о которых ваш код в первом сообщения даёт никакого представления. Если при сравнении снята галка "Оставить невыделенным хотя бы один файл в каждой группе", то они будут выделены по времени все (самых новых без учёта секунд там нет). А если галка не снята, то не всё ли равно, какой файл остаётся не выделен — они по данному критерию вроде как одинаковы...
При наличии времени (пока его нет) попробую разобраться дальше, если другие не проверят.
И ещё раз о правилах форума (на сей раз п.14) и последнем сообщении: надо везде использовать заглавные буквы, тут не чат.

Добавлено: Пт июл 19, 2024 08:08
woldemar
Avada
На выходе одинаковые файлы (по содержимому), но разные по времени (не всегда) и разные по именам (всегда). Это файлы с восстановленной ФС, ЕМНИП (за эту аббревиатуру надеюсь придираться не будете...) восстанавливал DMDE по сигнатурам, хотя какое это имеет значение к данному вопросу. Файлы находятся в одной папке, и опять же какая разница где они находятся. В документации об учитывании путей в результатах поиска ничего не сказано, а поиск дублей по разным папкам в т.ч. вложенным вполне типичная ситуация, более того предусмотренная - вкладка "по каталогам" позволяет выбирать в каких каталогах будут удаляться дубли.
По поводу
А если галка не снята, то не всё ли равно, какой файл остаётся не выделен — они по данному критерию вроде как одинаковы...
зачем тогда было делать какие то механизмы выборки, если "не все ли равно", хотя я могу напридумывать ситуации когда не все равно. Например, у вас есть много (тысячи) дублей с разными именами, но верные имена (те которые нужно оставить), есть только у файлов с более новыми датами.

Ниже, перевод (не мой) официальной документации.
Оставить невыделенным хотя бы один файл в каждой группе:
Эта опция полезна, если вы собираетесь удалить файлы-дубликаты, но хотите гарантированно сохранить как минимум по одному файлу из каждой группы. Для выбора такого файла сначала будет применён метод, выбранный в списке под номером "1". Если ни один файл не соответствует критерию (например, был выбран вариант "Самый новый", а у всех файлов одинаковые метки даты/времени), будет применён метод "2". И, наконец, если он тоже не сработает, используется метод "3", где оставлен выбор только между первым и последним файлом в группе. В первых двух методах, помимо этого критерия, можно также делать выбор на основе даты/времени и размера файла.

Добавлено: Пт июл 19, 2024 14:57
Avada
woldemar
Русский перевод мне как одному из его авторов известен. Всех подробностей обо всех нюансах там, разумеется, нет и не может быть. Что касаемо всего остального, то уже вполне очевидно, что секунды при определении новизны файлов в рассматриваемом диалоге в зачёт не идут. Осталось прояснить вопрос, почему снятие выделения имеет место быть у того, а не у иного файла. Будет время — займусь.

Добавлено: Пт июл 19, 2024 17:04
woldemar
Avada
Сейчас поставил время 2-ого файла, таким же как первого, т.е. 2 файла с одинаковой датой (и временем), и система выбрала "самым новым" - 3-ий файл, если бы секунды в зачет не шли то, для программы этот атрибут был бы одинаковым, а тут на изменение секунд видим изменение поведения, так что вовсе не очевидно...
А сейчас, я сделал 4-ый файл "самым новым", поставил ему 59 секунд (в рамках 54 минут как у всех), и система выбрала его.

P.S. Это больше похоже не на "нюанс", а на жука... ну вы поняли.

Добавлено: Сб июл 20, 2024 06:18
Avada
woldemar
Ваши поправки по единой папке и разным именам учтены. Что касается секунд, то они при обработке округляются, что и влияет, видимо, при столь малой разнице на общую картину (там у третьего и следующих файлов достаточно изменить время модификации на 1-2 секунды. чтобы получить другой результат). Во всяком случае, надёжным критерием разница в секундах тут не является (а во многих других областях TC и вовсе не учитывается). А вот если вы измените у времени какого-то файла именно число минут (хотя бы на одну), картина будет вполне штатной и стабильной.
Кстати, можно заметить, что третий файл будет оставаться без выделения в исходных условиях при любом варианте выбора из любого выпадающего списка (и для даты/времени, и для размера, который тоже одинаков). А также если этих файлов в списке было не пять, а три или четыре. Но это так, между прочим.
В данном конкретном случае и именно в нём (набор одинаковых по содержимому, размеру и дате/времени — кроме секунд — файлов с разными именами лежит в одной папке) исключение из выделения третьего по порядку файла может выглядеть странным. Но оно ни на что принципиально не влияет, потому что для базовой цели данного диалога (подготовки лишних файлов к удалению) на самом деле без разницы, какой из файлов группы останется не выделенным.
Понимаю, что это некоторый диссонанс во вселенской гармонии. Но в 99,99% случаев обработки дубликатов эта ситуация просто никогда не возникнет, да и в вашем случае работе это не мешает. Если же вы желаете и далее обсуждать это поведение как требующий безусловного устранения баг, советую самостоятельно, без посредников обратиться на официальный форум TC. А у меня на этом всё.

Добавлено: Пн июл 22, 2024 09:46
woldemar
Avada
Мы с вами не кулинарный рецепт обсуждаем, где можно добавить 1-2 щепотки соли и результат не измениться, или изменится, но чуть-чуть.
ИТ - это точная наука, за 1 секунду ЭВМ может натворить много, даже за наносекунду. Но наносекундами в повседневной жизни человек не оперирует, а вот секундами - вполне. Округлять секунды? странный подход в определении новизны.
У меня на этом тоже все.
P.S. "не баг, а фича" получается.

Добавлено: Пн июл 22, 2024 10:24
Avada
woldemar
Фичей это считать, багом или просто особенностью поведения в конкретных условиях, судить не берусь, у меня однозначное мнение не сложилось. И все дальнейшие претензии (если есть на то желание) — непосредственно к автору. Сюда он не заглядывает, а за вас разбираться с этим вопросом кто-то из участников данного форума захочет вряд ли.

Добавлено: Пн окт 14, 2024 00:30
siealex
Разница в одну секунду в NTFS далеко не в каждой программе будет учитываться. Если сделать разницу по времени файлов строго больше 2 секунд - проблема воспроизводится или нет?