Написание FSPLUGIN

Форум о самом популярном файловом менеджере Total Commander

Сообщение AlecP » Чт авг 12, 2004 2:06 pm

Попробовал написать fs плагин для TC. Если папка пустая пишу на Delphi 6:
SetLastError(ERROR_NO_MORE_FILES);
Result := INVALID_HANDLE_VALUE;
TC бумкает и папку не открывает. Почему?
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0

Сообщение dest » Чт авг 12, 2004 6:17 pm

Нужно возвращать хотябы один файл.
Если папка пустая возвращай файл ".." с атрибутом что он директория.
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение dest » Чт авг 12, 2004 6:28 pm

Кстати.
Писать плагины на Delphi - не очень хорошо.
От плагина требуется:
1) Скорость
2) Компактность

И уж в последнюю очередь оформление.
Я тоже пишу плагин для TC (http://wincmd.ru/plugring/FileRedirector.html).
Пишу его на VS 6.0.
Минимальный откомпиленый плагин - 20кб. После upx - 3кб.
На Delphi - разве только тестить ТС.

P.S. ТС написан на Delphi. Поэтому его размер - 2мб (TC 6.03a без upx).
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение AlecP » Пт авг 13, 2004 5:04 am

В принципе мне и нужен как раз плагин типа FileRedirector, но с добавлением ряда функций. Таких как создание дельты (разницы) между двумя базами. И соответствующая синхронизация, например, домашнего и рабочего компьютеров. Также хочется иметь как бы дополнительные статусы для файлов. Например, забакуплен ли файл. Например, я выбираю директорию и прошу создать архив/вр.папку/т.д. новых не записаных на носители файлов. Ну и прочих интересностей. Типа голосовых меток и иже с ними.
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0

Сообщение dest » Пт авг 13, 2004 6:09 am

На данный момент в плагине уже есть синхронизация такого рода:
1) Жмеш alt+Enter на папке.
2) Прописываеш любой путь.
3) При загрузке базы происходит:
a) Все вложенные файлы проверяются на читаемость. Если их уже нету:
переименовываются в !.!.deleted, иконочка тоже меняется
б) Добавляются все новые файлы из ранее прописанного пути.

>Например, забакуплен ли файл
По сути. В плагине сохрапяются флаги файлов. Можно и это вывести :)
Что-то я упустил это в своем плагине.
Сделаю в следующей версии...

> я выбираю директорию и прошу создать архив/вр.папку/т.д. новых не >записаных на носители файлов
Можно сделать флажок для каждого файла - дескать новый.
Далее - в настройках директории рядом с "SaveAs..." сделать флажок
"Only New". И сохранятся только новые файлы. Пойдёт?

>Типа голосовых меток и иже с ними.
Ну уж это слишком.
Зачем это надо. Напиши подробнее. Наверное я тя не так понял...
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение AlecP » Пт авг 13, 2004 8:04 am

Вообще-то идея была следующая: В процессе моего существования скапливается множество файлов различного типа и из различных источников. Со временем разобраться в них становится оч.сложно. Вот и нужна программа, к-я помогла бы поддерживать порядок во всем множестве файлов. После некоторых раздумий было решено не изобретать велосипед, а доработать существующие продукты. В ТС реализовано множество функций, к-е необходимы для подобной проги. Дополнительные укладываются в функции реализуемого FS- плагина. Требуется следующие функции:
1. Ведение общего каталога файлов с дополнительными аттрибутами (допустим для фоток - описание, время съемки, разрешение, размер, количество сделанных твердых копий и т.п., для статьи - откуда, автор и т.п., для софта - актуальность версии, сайт программы ну и т.д. и т.п.) Естественно с возможностью поиска, сортировки.
2. Самая важная функция для проги. Работать с самими файлами. Где он находится (на компьютере1, на компьтере2 на CD1, на флешке, у детей на дискете ;)). Скачал файл на работе и забыл принести домой, отдал диск кому-то, а оказывается еще и сбросил на флешку. Т.е. работаем примерно так. В каталоге проверяем наличие новых файлов где-то на доступном в данный момент носителе, есть. Вносим файл в каталог (со всеми нужными аттрибутами). Далее все новые (или как-то отобранные файлы) собираем в архив и несе домой, пишем на болванку или еще куда засовываем. К этой группе присовокупляем кусочек базы каталога, к-й к ней относится. Далее напр., дома обновляем каталог и распихиваем файлы из архива. Когда файл потребовался ищем в каталоге и затем смотрим где этот файл лежит, берем его работаем.
Вкратце так. С помощью ТС+FileRedirector решается 80% задач. Но все-таки, хотелось бы 100%.
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0

Сообщение AlecP » Пт авг 13, 2004 9:22 am

А насчет звуковых меток. Можно же сохранять всякие nfo и diz. Почему бы не сохранять короткие WAV.
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0

Сообщение dest » Пт авг 13, 2004 11:27 am

Насчет первого подумам. Будет свободное время/желание добавим такую фишку.

Второй пункт понял. Но лучше напиши пример :)
У меня вроде всё это сделано.

<!--QuoteBegin--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>Цитата </td></tr><tr><td id='QUOTE'><!--QuoteEBegin-->А насчет звуковых меток. Можно же сохранять всякие nfo и diz. Почему бы не сохранять короткие WAV. <!--QuoteEnd--></td></tr></table><div class='postcolor'><!--QuoteEEnd-->
А это уже частично присутствует.
Можно сохранить маленькие wav в базу. А если он уж очень большой, то только его начало :)
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение AlecP » Пт авг 13, 2004 12:37 pm

По второму пункту я опишу несколько ситуаций:
1.Есть две базы рабочий комп и домашний. Я делаю сравнение. Получаю кусок базы с разницей в базах и временный каталог/архив с файлами, к-х у меня нет дома (или они были обновлены). Записываю эти изменения на диск/флешку и несу домой. Дома обновляю базу дом.компа и заодно раскладываю на места файлы из разницы.

2.Нашел файл в каталоге хочу знать: где он у меня лежит. Напр. в свойствах файла указывать Есть в той базе, есть в той базе, на таком-то диске и т.д. В принципе можно пользоваться поиском, но это неудобно, да и работать с несколькими базами неудобно.


Ну, а насчет зв.меток. Мне они кроме как в базе и не нужны вовсе. Главное чтобы они были привязаны к файлу. Т.е. нашел файл в каталоге, посмотрел на каком он диске и заодно прослушал коментарий, посмотрел эскиз, прочитал коментарий. Нужна привязка к конкретному файлу.
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0

Сообщение dest » Пн авг 16, 2004 3:23 am

Ясненько.
Вроде полностью понял твой замысел.
Переделывать много - поэтому не скоро прикручу к плагину.

Будет это выглядеть так:
1) В настройках появится выбор из двух режимов - single и multi
1- стандарт 2- возможна загрузка 2-х и более баз
2) Во 2-м режиме - в корне плагина лежет папки с именами как у баз.
В одной панели одна база - в другой - вторая.
Жмём в ТС "Синхронизировать каталоги". Ну и дальше все понятно.

Если есть замечания/предложения - пиши
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение dest » Пн авг 16, 2004 4:22 am

Кстати можно не воротить и сделать вот что:
Сделать разбиение файлов по группам.
Т.е в настройках к базе появляется менюшка где можно создавать, редактировать инфу о группе. Там-же можно выбрать группу файлов для отображения и для записи.
Действия для обновления файлов:
1) У тебя на дискете(флешке, hdd-плеере...) база ("домашняя").
2) Приходиш на работу (к другу,...) пускаеш плагин. В настройках групп файлов ставиш на отображение - все файлы. На запись - создаеш группу "содрано таког-то числа у того-то с диска такого-то".
3) Жмеш ту-же самую кнопочку "Синхронизация каталогов"
4) Записываеш все новое (они уже будут в группе которую ты уже создал :).
5) Записываеш все что надо на диск.
6) Приносиш домой.
Все.
Думаю так будет лучше :). И воротить ничего не надо.
Наша работа во тьме -
Мы делаем, что умеем,
Мы отдаем, что имеем,
Наша работа во тьме.
Сомнения стали страстью,
А страсть стала судьбою.
Все остальное - искуство
В безумии быть собой.
dest
Ст. лейтенант
 
Сообщений: 114
Зарегистрирован: Вс май 09, 2004 4:34 am
Пункты репутации: 0

Сообщение AlecP » Вт авг 17, 2004 1:11 pm

C синхронизацией понятно. Просто держать все на HDD не вижу смысла. И поэтому хотелось бы именно гибрид каталогизатора (с произвольными категориями, статусами и т.д.) и редиректора. Т.е. редиректору в текущей версии нужны функции каталогизатора. И тогда будет суперский плагин. Еще бы конечно для ридонли каталогов отключать .deleted (Чтобы хранить на CD). Просто сообщения вставьте диск такой-то достаточно.
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0

Сообщение AlecP » Вт авг 17, 2004 1:24 pm

И еще пару пожеланий. Папки на разных компьютерах не обязательно повторяют структуру. Главное доступность файлов из каталога. Т.е. на одном компьютере файл достается из одной папки, а на 2-м из другой.
В свете обещаний автора TC добавить для отображения произвольные столбцы на панелях можно заложится на храниение произвольных аттрибутов файлов, в том числе и считываение этих атрибутов (разные тэги в музыке, фотках, свойства офисных файлов и т.д.)
AlecP
Ст. сержант
 
Сообщений: 39
Зарегистрирован: Чт авг 12, 2004 2:01 pm
Пункты репутации: 0


Вернуться в Total Commander

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 13

cron