FB2 Toolbox - переименование, перемещение и перекодировка файлов.

Я искал замену BOOKI, но не нашел. Вот, получилась такая программка. Бесплатна, можно задавать профили для изменения имен/путей файлов, перекодировать из чего угодно во что угодно. Работает вроде быстро (распознавание и переименование 50.000 файлов с разбрасыванием по каталогам у меня заняло ~20 минут).

Вся информация на страничке, скачивать оттуда же. Требует Microsoft. NET Framework 2.0.
http://fb2toolbox.googlecode.com

Если понравиться - отпишитесь. Если что не работает, поправлю как будет время. В принципе я ее с друзьями гонял с месяц, вроде все пашет.

===Версия 1.3 от 1 августа 2010===
* Добавлена возможность тестирования FB2 файлов на соответствие стандарту FB2 v2.1
* Исправлена кодировка (символы, отсутствующие в новой кодировке, будут кодированы по стандарту &#XXXX;)
* Исправлен небольшой баг с распознованием жанров.

===Версия 1.2 от 30 июля 2010===
* Добавлена возможность прерывать длительные операции (по клавише Esc или нажав кнопку в строке состояния). FB2 Toolbox попросит либо подтвердить отмену, либо продолжить выполнение текущей операции.
* Добавлена возможность переименования файлов .zip в .fb2.zip во всех каталогах начиная с выбранного (меню Прочее/Переименовать .zip в .fb2.zip)
* Добавлено 2 новых примера профилей для переименования (включающих в себя Жанр)
* Исправлено несколько мелких багов.

===Версия 1.1.1 от 28 июля 2010===
* Исправлен небольшой баг с распаковкой архивов (некорректно определялись имена извлеченных файлов).

===Версия 1.1 от 28 Июля 2010===
* Добавлена работа с архивами .FB2.ZIP (допускается только один файл FB2 в zip-архиве). Работа с программой не изменилась, с архивами можно делать все то же что и а fb2-файлами. Например если запустить перекодирование, FB2 Toolbox на лету распакует архив в память, перекодирует и сохранит обратно в архив. При переименовании изменяется только имя файла архива (FB2 файл внутри архива переименован не будет).
* Добавлена глобальная конфигурация для подстановки символов в путях/именах файлов (не зависимо от профиля). Полезно чтобы не повторять заново в каждом профиле замену символов недопустимых в именах файлов.

Комментарии

Попробовал - программа симпатичная и простая в употреблении. Хотелось бы побольше возможмостей в определени папки для перемещения или копирования (я например использую жанр/автор), а также стандартный способ выбора существующей папки как в Windows Explorer

kot11 написал:
Попробовал - программа симпатичная и простая в употреблении. Хотелось бы побольше возможмостей в определени папки для перемещения или копирования (я например использую жанр/автор)

Так там же можно профиль добавить в файле конфигурации, так как самому удобно...

Например, правила формирования пути:
<path>
<part value="(AuthorLastName)"/>
<part requiredAttribute="AuthorFirstName" value=", (AuthorFirstName)"/>
<part requiredAttribute="SequenceName" value="\(SequenceName)"/>
</path>

Заменить на:
<path>
<part value="(Genre)"/>
<part value="\(AuthorLastName)"/>
<part requiredAttribute="AuthorFirstName" value=", (AuthorFirstName)"/>
<part requiredAttribute="SequenceName" value="\(SequenceName)"/>
</path>

Жанры будут использоваться из таблицы подстановки (там же, в конфиге). Если подстановка не нужна, можно их закомментировать, на страничке программы есть пример.

kot11 написал:
а также стандартный способ выбора существующей папки как в Windows Explorer

Честно говоря, не понял, я использую системный диалог Browse for folder, так что стандартнее некуда. Все пути запоминаются, так что будут выбраны по умолчанию при следующем запуске.

Жаль, что с архивами не работает. Планируется?

Wictor написал:
Жаль, что с архивами не работает. Планируется?

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

Правда с ограничениями:
- Один файл в архиве с именем .fb2.zip
- Переименовываться будет только сам архив, а не файл внутри архива. В принципе можно и файл внутри архива переименовывать, но тогда это будет медленно. Да и не думаю, что имеет смысл.

Думаю что многие библиотеку в файлах .fb2.zip собирают. А файл внутри архива и не нужно переименовывать.

Wictor написал:
Думаю что многие библиотеку в файлах .fb2.zip собирают. А файл внутри архива и не нужно переименовывать.

Прикрутил, вроде. Скачайте новую версию (v1.1).

Даже можно кодировку файлов внутри архива менять (налету в память распакует, перекодирует и обратно запакует)... :-)

В меню "Действия" для удобства добавлены пара пунктов: "Архивировать..." и "Распаковать...". Думаю не надо объяснять что они делают. FB2 файлы после архивирования будут удалены. То же с fb2.zip, после распаковки архивы будут удалены. Мне это показалось логичным...

Единственный затык - кодировка имени файла. Я все-таки остановился на UTF-8, как стандарт в спецификации ZIP. К сожалению Windows Explorer не поддерживает UTF-8 в названиях файлов (внутри архива). Поэтому если имя файл fb2 было русское, в Windows Explorer будут кракозябры. WinZIP и WinRAR показывают имена файлов корректно.

kotya написал:
можно кодировку файлов внутри архива менять (налету в память распакует, перекодирует и обратно запакует)
Что происходит с символами, для которых нет кода в target-кодировке?

Рыжий Тигра написал:
kotya написал:
можно кодировку файлов внутри архива менять (налету в память распакует, перекодирует и обратно запакует)
Что происходит с символами, для которых нет кода в target-кодировке?

А что с ними может происходить? Меняются, конечно. Что и на что зависит от кодировок. Что с символом евро происходит при сохранении в ASCII или с кирилицей в win1252? Кирдык им приходит, как и положено, и обратное кодирование не поможет.

kotya написал:
Рыжий Тигра написал:
Что происходит с символами, для которых нет кода в target-кодировке?
Кирдык им приходит, как и положено, и обратное кодирование не поможет.
А заменить на "&#<юникодный-номер>;" никак нельзя? И наоборот - если встретился &#<номер>; и target-кодировка такой символ имеет, то заменить на символ.

Рыжий Тигра написал:
А заменить на "&#<юникодный-номер>;" никак нельзя? И наоборот - если встретился &#<номер>; и target-кодировка такой символ имеет, то заменить на символ.

Я не склонен к мазохизму... составлять таблицы что есть и чего нет для 100+ кодировок... Это уже сделано за нас, пусть и не так как Вам хочется.

kotya написал:
Я не склонен к мазохизму
В смысле - не любишь доделывать? "Сойдётитак" aka "пипл схавает"? :-(

Рыжий Тигра написал:
kotya написал:
Я не склонен к мазохизму
В смысле - не любишь доделывать? "Сойдётитак" aka "пипл схавает"? :-(

Именно. Если "пиплу" больше нечего делать, кроме как из японского в KOI8-R переводить, то при чем здесь я? win1251<->utf8<->utf16 вполне работает. А если кому-то ну ОЧЕНЬ надо запихать кириллицу в win1252, то это не ко мне.

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

Добавлю:
1. Стандарт fb2 изначально плохо продуман. Чего только стоят namespace, одинаковые в 2.0 и 2.1, но отличающиеся в schema.
2. 30-40% книг просто не валидны по схеме, ~5% вообще неверный xml (что уж там про схему говорить).
3. Программу скачивает человек 10, из них, наверное, пользуется 5.
4. Из этих 5ти, может 1 или 2 перекодируют, причем либо все в win1251, либо в utf8

Вопрос: и нафига городить огород?

kotya написал:
win1251<->utf8<->utf16 вполне работает
А символ ударения, который не редкость, но в 1251 его нет? А µ±×÷∆∏∑√∫≈≠αβγε - при перекодировке вместо вместо этих буковок будешь знаки вопроса ставить или тупо выбраасывать? Попробуй почитать "Клокочущую пустоту" Казанцева - над ней эту операцию уже проделали. :-(
kotya написал:
смысла нет. Тем более что большинство наших читалок просто не в состоянии правильно работать с юникодом.
Все мои читалки (CoolReader'ы) с юникодом работают лучше, чем без него.
kotya написал:
Стандарт fb2 изначально плохо продуман. Чего только стоят namespace, одинаковые в 2.0 и 2.1, но отличающиеся в schema.
2. 30-40% книг просто не валидны по схеме, ~5% вообще неверный xml (что уж там про схему говорить).
Э... Теория разбитых окон - там, где один не доделал, всем остальным позволительно вообще не напрягаться? :-(
kotya написал:
Из этих 5ти, может 1 или 2 перекодируют, причем либо все в win1251, либо в utf8
Во-во. И все дружно получат х@й вместо спецсимволов. А потом зальют сюда. И кто будет это гуано потом разгребать - опять мы, библиотекари?
Так что, пожалуйста, не халявничай. Соответствующий кусок кода наверняка можно слямзить из исходников FBE.

Рыжий Тигра написал:
Так что, пожалуйста, не халявничай. Соответствующий кусок кода наверняка можно слямзить из исходников FBE.

Нафиг копаться в FBE, проще самому.

Ну, ладно, добавил... (версия 1.3 на сайте). А кто тестировать будет? У меня таких книг нет, кое-что потестировал, win1251->win1252->win1251 работает, символы заменяются на entity где надо (и обратно)...

Видимо, осчастливил тех 4х человек, что скачали версию 1.2 ;-)

kotya написал:
Wictor написал:
Думаю что многие библиотеку в файлах .fb2.zip собирают. А файл внутри архива и не нужно переименовывать.

Прикрутил, вроде. Скачайте новую версию (v1.1).

Натравил на свою библиотеку и был весьма удивлен малому количеству файлов. Основой для нее послужила библиотека ФанЛаб, где файлы не fb2.zip а просто zip, соответственно книги не попадают в список. fb2.zip не так часто применяется, может оставить только zip?
И еще хотелось бы пункта в контекстном меню проводника "Отправить в библиотеку". Т.е. скачал десяток файлов, выделил, нажал пункт меню и все файлы в соответствующих папках.

Wictor написал:
Натравил на свою библиотеку и был весьма удивлен малому количеству файлов. Основой для нее послужила библиотека ФанЛаб, где файлы не fb2.zip а просто zip, соответственно книги не попадают в список. fb2.zip не так часто применяется, может оставить только zip?
И еще хотелось бы пункта в контекстном меню проводника "Отправить в библиотеку". Т.е. скачал десяток файлов, выделил, нажал пункт меню и все файлы в соответствующих папках.

Так оно и есть, файлы должны иметь расширение .fb2.zip (и не я это придумал). ЛибРусЕк файлы в .fb2.zip отдает да и многие другие библиотеки тоже. Я мог бы добавить просто .zip, но тогда мне прийдется разбирать файлы, какие уже включены (поиск по *.zip уже включает *.fb2.zip) и как-то пытаться привести имена файлов к правильному виду. А .fb2.zip является рекомендованным, если я ничего не путаю. Думаю Вам проще переименовать архивы в .fb2.zip Если у Вас нет специализированных утилит, тем же xcopy можно из командной строки скопировать файлы с подкаталогами и переименованием.

Насчет пункта меню - прийдется запоминать путь И профиль для перемещения. Сейчас происходит почти то же самое, только в обратом порядке: выбираете профиль для перемещения, затем путь. Путь будет запомнен и программа его сама выберет в следующий раз, все что потребуется это нажать Ок. То есть 2 кнопки вместо одной. ;-)

Wictor написал:
kotya написал:
Wictor написал:
Думаю что многие библиотеку в файлах .fb2.zip собирают. А файл внутри архива и не нужно переименовывать.

Прикрутил, вроде. Скачайте новую версию (v1.1).

Натравил на свою библиотеку и был весьма удивлен малому количеству файлов. Основой для нее послужила библиотека ФанЛаб, где файлы не fb2.zip а просто zip, соответственно книги не попадают в список. fb2.zip не так часто применяется, может оставить только zip?

В версии 1.2 появилась функция переименования .zip в .fb2.zip по всех подкаталогах, начиная с выбранного.

Спасибо, дорвусь до ББ, попробую-отпишусь здесь или в issues. ))

Может ли эта программа переименовывать не только имена файлов, но и дерикторий с поддиректориями?
Столкнулся с проблемой для SONY READER 505
Там, если хранишь книги на карте памяти, то проблема с русскоязычными названиями директорий и иногда файлов
Если используется структура \автор\серия\название.LRF, то приходится все транслитировать
Обнаружил, что например добавив знак + к началу имени каждой директории и файла, можно называть все по русски
То есть стоит задача
Есть директория с вложенными поддиректориями, в которых вложены еще поддиректории, в корорых лежат файлы LRF
Надо добавить знак + в наименование не только файлов, но и директорий с поддиректориями.
Есть масса программ переименования файлов, которые этот плюс добавят, но только к названиям файлов.
А чтобы заодно добавила + и к именам директорий и поддиректорий не нашел

mon_vic написал:
Есть директория с вложенными поддиректориями, в которых вложены еще поддиректории, в корорых лежат файлы LRF
Надо добавить знак + в наименование не только файлов, но и директорий с поддиректориями.
Есть масса программ переименования файлов, которые этот плюс добавят, но только к названиям файлов.
А чтобы заодно добавила + и к именам директорий и поддиректорий не нашел

Увы, с файлами LRF программа не работает. Для Fb2 - пожалуйста, можно свои правила для путей создавать, можно и + добавить куда хочешь.

Да я могу принудительно формально переименовать все LRF файлы в FB2
Конечно информация оттуда не вытащится, но мне нужно просто тупо переименовать все, что мне надо
Могу ли я ?
1. Формально поменять расширение всех файлов LRF на FB2
2. Добавить + куда мне надо
3. Поменять расширение назад на LRF

mon_vic написал:
Да я могу принудительно формально переименовать все LRF файлы в FB2
Конечно информация оттуда не вытащится, но мне нужно просто тупо переименовать все, что мне надо
Могу ли я ?
1. Формально поменять расширение всех файлов LRF на FB2
2. Добавить + куда мне надо
3. Поменять расширение назад на LRF

Нет, не получиться. Файлы будут просто проигнорированы, если не удастся распознать заголовок fb2.

Вам нужен какой-нибудь file renamer. Вот, первое бесплатное что поиск выдал: http://file-folder-ren.sourceforge.net/

X