Flasher
Переименовывает умляуты и кирилицу, но на больших файлах (проверял на 2-3 гигабайтных), начинает занимать всю оперативную память 2 Гб и выскакивает ошибка:
Строка: 46
Символ: 31
Ошибка: Недостаточно памяти для завершения операции.
Код: 8007000E
Источник: Provider
Первый скрипт с XMD5.dll на этих же файлах занимает 3,5 Мб
Flasher писал(а):Кстати, а почему не сделать аналог с фильтром и созданием Info.<CRC>?
Хорошо бы, как в rhash обновление crc файлов, a если их нет то создание.
SVM
Насчёт памяти не знаю как решить в контексте приложенного модуля. Читается с экономией, а вот запись кусками приходит в объект до заполнения. У XMD5 свой внутренний алгоритм работы с заданным файлом, там этот вопрос, что логично, решён.
По поводу обновления и создания. А разве в скрипте создания Info.txt не так?
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher писал(а):А разве в скрипте создания Info.txt не так?
Ну там всё быстро происходит. Я имел ввиду rhash может не пересчитывать заново crc всех файлов (судя по скорости), а считает только те файлы которых нет в *.md5 и дополняет crc файл.
SVM писал(а):rhash может не пересчитывать заново crc всех файлов (судя по скорости), а считает только те файлы которых нет в *.md5 и дополняет crc файл.
Так не бывает. Чтобы что-то дополнить, нужно узнать, что дополнять, а значит, перечитать crc. Только это делать вовсе необязательно, достаточно перезаписать файл целиком. Поэтому я и не понял, зачем приводился пример с rhash, если данное событие в аналоге и так реализовано.
SVM писал(а):всю оперативную память 2 Гб
А чего не подкупить ещё? За 2-2.5 тыс. можно взять 4 Гб.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Я думал в rhash -u, --update, в файле crc проверяет по имени недостающие файлы, считает только их и добавляет в crc файл. Например в папке 1 Тб файлов, добавил несколько файлов в папку и из-за этого пересчитывать все файлы? Я делаю это вручную, посчитал crc 2 файлов, открыл в akelPad, скопировал 2 строки в буфер, добавил в общий crc.
Flasher писал(а):А чего не подкупить ещё?
Компьютеру лет 6, его проще полностью обновить или искать БУ память.
SVM писал(а):Компьютеру лет 6, его проще полностью обновить или искать БУ память
Так 6 лет назад современные материнки допускали на борт DDR3.
Ещё посмотрю пару-тройку компонентов, работающих отдельно с файлами, как они с юникодными именами справляются. Если повезёт, сообщу.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
SVM
Новости неутешительные. Никто не хочет читать юникодные имена (умляутов не касается). Так как быть? Временно переименовывать на момент чекинга? Или к rhash обратимся?
[cut="Про rhash:"]Жаль, что он не может сохранять в UTF-8 с ВОМ, а то Тотал кириллицу без ВОМ не прочтёт. А ТС-шную форму подобрать - раз плюнуть: rhash.exe -i -M -p"%m *%f\n" --speed --percents -o"Info.md5" *.*
Рекурсия там есть, но она собирает всё в один файл, что для нас, как я понимаю, не годится.[/cut]
Последний раз редактировалось Flasher Вс мар 15, 2015 08:44, всего редактировалось 1 раз.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
SVM писал(а):Тогда буду пользоваться первым скриптом XMD5
Мм.. А что не так с утилитами? Я помимо rhash ещё 3 нашёл, которые читают юникодные имена. Самая маленькая - 93 Кб.
SVM писал(а):а умляуты и юникод переименовывать в Total Commander.
Я то имел в виду - скриптом переименовывать...
SVM писал(а):Нужен скрипт аналог предыдущих скриптов, то есть в каждой папке *.md5 файл
Да, я понимаю, просто вариант с единым для подпапок хэш-файлом не такой уж и безнадёжный в плане удобства. Только работать с ним придётся не средствами ТС.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher писал(а):А что не так с утилитами? Я помимо rhash ещё 3 нашёл, которые читают юникодные имена.
Не пойму это про какой скрипт, переименование файлов в структуре активного каталога по MD5, или подсчёт crc - сумм файлов и добавления в crc файлы? Если есть решение по умляутам и юникоду, то было бы отлично.
Flasher писал(а):просто вариант с единым для подпапок хэш-файлом не такой уж и безнадёжный в плане удобства.
Может этот вариант и удобный, но отпадает возможность проверки в Total Commander. А если удалить папку, потом нужно будет обновлять единый crc файл. Проще удалить папку вместе с crc файлом и не обновлять единый crc файл.
SVM писал(а):Не пойму это про какой скрипт, переименование файлов в структуре активного каталога по MD5 ... Если есть решение по умляутам и юникоду, то было бы отлично.
Сперва нужно сделанное допилить, т.е. речь только о Юникоде и сохранении памяти.
Не буду тогда править старый вариант.
[cut="Вот новый:"]
[/cut]
Что касается объединения, то я пока не решил. Думаю, что лучше будет добавлять ВОМ к создаваемым UTF-8-спискам самим rhash или другой утилитой. Это видится оптимальней по скорости. И, соответственно, это уже будет в ином топике.
Последний раз редактировалось Flasher Сб мар 14, 2015 01:38, всего редактировалось 2 раза.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.
Flasher
Переименовывает например 10 минут, потом 10 минут ничего не переименовывает, в процессах идёт подсчёт md5 уже переименованного файла "C:\Program Files\Total Commander\Plugins\utils\HashFile\hashfile.exe" -md5 "L:\Папка\Переименованный_файл.mp4"
SVM писал(а):потом 10 минут ничего не переименовывает
Скрипт проверяет все файлы, в том числе те, что не были переименованы. Это же заведомо узнать невозможно.
А само окно появляется за 10 минут до окончания? Что-то не верится.
И зачем тут ключ -md5? См. внимательно описание в шапке.
SVM писал(а):в процессах идёт подсчёт md5 уже переименованного файла
В коде нет ничего такого, чтобы подобное могло происходить.
Добавил счётчики. Если все требуемые файлы будут переименованы, то скрипт должен завершить работу.
Автору сборки TC Image (Andrey_A) настоятельно рекомендуется не распространять на иных ресурсах любую предоставленную мной где-либо техническую информацию по автоматизации и оптимизации в работе с ТС и системой.