Process multiple destinations

Jun 27, 2013 17:45

Есть такая прекрасная программа под виндой, FAR. Умеет, среди прочего, копировать и перемещать файлы. И в диалоге подтверждения есть опция «Process multiple destinations». И даже работает, но почему-то только для копирования, не для перемещения. Очень полезно: например, содержимое флэшки после съемки я могу сливать сразу и на файл-сервер, и на два ( Read more... )

фото, техническое, видео

Leave a comment

Comments 9

dizel_by June 27 2013, 13:49:23 UTC
Ввиду того, что это явный косяк, я бы начал решать эту проблему с ругани в фаровский багзилле :)

Reply

yaker June 27 2013, 13:55:43 UTC
Фар удобен, но в принципе мне не уперся. Может, кто-то другой умеет?

Вообще идеальная функциональность выглядит так:
1. Я втыкаю флэшку.
2. Система по специфической структуре директорий (настраивается) определяет, что это флэшка со съемкой, и спрашивает меня, как я хочу эту съемку назвать. Текстовое поле + история названий.
3. Система создает в заранее настроенных местах директории, основанные на введенном названии съемки, и копирует туда всю съемку. Желательно, конечно, параллельно.
4. По окончании копирования флэшка автомагически очищается (не вся, а только файлы со съемкой по заранее настроенной маске - у меня там еще куча служебных файлов, которые нельзя трогать) и размонтируется.
5. Система сообщает об окончании процесса.

Reply

dizel_by June 27 2013, 13:56:57 UTC
Ну кагбэ такое с отладкой за пару часов пишется. Если самому лень, толпа голодных фрилансеров есть же :)

Reply

dizel_by June 27 2013, 13:58:21 UTC
Кстати... А в фаре есть такая фича, как системная функция копирования. Может она включена? Система же не умеет в несколько мест сразу копировать, вот и. А сам фар вполне может.

Reply


votez July 2 2013, 22:11:52 UTC
логично предположить, что копирование может идти с сильно разной скоростью и поэтому алгоритм чтоб не читать второй раз может быть весьма сложен. Варианты, например, - кэширование огромного объема данных или выбор самого быстрого источника для чтения - как, например, в случае с флешки на диск и на сетевую шару должен читать раз с флешки, писать на диск, читать с диска, писать в шару. Так что проблема не так проста в общем случае. Решения не знаю, но мысль интересная на подумать...

Reply

yaker July 2 2013, 22:24:03 UTC
Очевидно, что общая скорость процесса определяется самым медленным устройством. Поэтому достаточно сделать кольцевой буфер, в который читать по мере освобождения, и сразу из него писать во все предусмотренные места. Блок буфера считается освободившимся, если данные из него записаны на все устройства.

Что-то мне подсказывает, что достаточно буфера из двух блоков малого размера (по отношению к общему объему данных). Если скорость передачи одного из медленных устройств нестабильна, увеличение количества блоков может уменьшить общее время копирования.

Reply

votez July 3 2013, 00:13:49 UTC
не очевидно. когда я копирую фото с флешки на диск и по сети на nas, я заинтересован поскорее освободить флешку (медленную, но быстрее сети), чтобы вставить следующую. Поэтому я копирую всё на диск, вставляю другую флешку и запускаю с неё копирование, при этом начиная процесс копирования с диска на nas (процесс этот я могу и прервать, продолжив потом - этот приёмник для меня второстепенен) . Вот и процесс, не работающий с одним буфером хорошо (то есть - более медленный для главной задачи переноса всех данных на диск).

Reply

yaker July 3 2013, 08:05:27 UTC
C другой стороны, у меня скорее параноидальный режим. Я не стираю флэшку, пока ее содержимое не окажется на двух внешних дисках, которые никогда не подключаются куда-либо одновременно. Так что да, все непросто.

Reply


Leave a comment

Up