SavePathTree

Вам не хватает чего-то в Far? Вы считаете, что вашу идею стоит услышать? Пишите сюда.
User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

SavePathTree

Post by Skirda »

На мантисе есть вот такая запись: Mantis#186.

Добавляется новый диалог настроек.

Code: Select all

╔══════════════════ Tree settings ══════════════════╗
║ [ ] Auto change folder                            ║
║ Minimum number of folders:  4                     ║
╟─────────Хранить файл структуры папок для:─────────╢
║ [x] локальных дисков                              ║
║     LD.%D.%SN.tree                                ║
║ [x] сетевых дисков                                ║
║     ND.%D.%SN.tree                                ║
║ [x] сетевых путей                                 ║
║     NP.%SR.%SH.tree                               ║
║ [x] сменных дисков                                ║
║     RD.%SN.tree                                   ║
║ [x] CD-дисков                                     ║
║     CD.%L.%SN.tree                                ║
║ Путь для локальных, сменных и CDROM дисков:       ║
║ %FARLOCALPROFILE%                                 ║
║ Путь для сетевых дисков и путей:                  ║
║ %FARPROFILE%                                      ║
║ Не создавать файл для следующих дисков и путей:   ║
║                                                   ║
╟───────────────────────────────────────────────────╢
║                 { OK } [ Cancel ]                 ║
╚═══════════════════════════════════════════════════╝
Файлы для локальных дисков, сменных и CDROM хранятся по умолчанию в %FARLOCALPROFILE%.
Файлы для сетевых дисков и путей - %FARPROFILE%.
Атрибут для файла - Hidden, System, Read only.


Шаблоны (красным выделены нереализованные/под вопросом):
  • %D - буква диска
  • %F - тип файловой системы (NTFS, CDFS, ... - то, что вернет GetVolumeInformation)
  • %P - Remote путь (здесь символы '\' преобразуются в '_')
  • %SN - Serial number
  • %SR - имя сервера
  • %SH - имя шары
  • %L - метка диска
  • %T - тип носителя (перфокарта, магнитная лента, флоп, CD, DVD, флэшка и т.п) - аббревиатуру бы сюда
По умолчанию:
  • локальные диски - "LD.%D.%SN.tree"
  • сетевые диски - "ND.%D.%SN.tree"
  • сетевые пути - "NP.%SR.%SH.tree"
  • сменные диски (DRIVE_REMOVABLE, флешки...) - "RD.%SN.tree"
  • CD-диски - "CD.%L.%SN.tree"
Дальнейшие планы (вперемешку)
  • Хранить структуру дерева в SQLite-файлах.
  • Уменьшить структуру tree-файлов, исключив полный путь.
  • Реальную ФС сделать частью VSF, что позволит: предоставить TreeAPI для плагинов, создавать дерево от любого каталога.
  • ...
Last edited by Skirda on Thu 26 Apr, 2007 09:38, edited 7 times in total.

User avatar
HaRT
Moderator
Posts: 9333
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Post by HaRT »

Skirda
Сразу несколько вопросов:
0. Сетевые пути — это UNC?
1. Наверно, стоит явно оговорить, как будут применяться умолчания для носителей, которые только для чтения.
2. Шаблон по умолчанию будет применяться к корневому пути диска?
3. Стоит ли вносить букву диска в шаблон по умолчанию для сменных носителей, ведь для них как раз буква подвержена частому изменению.
4. В настройках в реестре можно будет применять переменные окружения?

PS Ну и не стоит забывать про DVD.

PPS И хорошо бы ещё иметь опцию, какие атрибуты задать для такого файла.

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

HaRT wrote:0. Сетевые пути — это UNC?
1. Наверно, стоит явно оговорить, как будут применяться умолчания для носителей, которые только для чтения.
2. Шаблон по умолчанию будет применяться к корневому пути диска?
3. Стоит ли вносить букву диска в шаблон по умолчанию для сменных носителей, ведь для них как раз буква подвержена частому изменению.
4. В настройках в реестре можно будет применять переменные окружения?
PS Ну и не стоит забывать про DVD.
0. Да
1. Бррр... подробнее
2. да. а как иначе?
3. здесь у меня была другая мысль, вместо буквы диска применить просто "Far."...
4. ну эт как реализовать ;-) вернее - как скажете, если будет удобно переменные окружения - то да.
DVD. А что здесь не так? "CD.%L.%SN.tree" разве не подойдет, как обобщение?

User avatar
HaRT
Moderator
Posts: 9333
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Post by HaRT »

Skirda wrote:1. Бррр... подробнее
Куда будет записываться файл, если описываемый диск доступен только для чтения (т.е. недостаточно прав на запись или сменный носитель физически не поддерживает запись или защищён от записи и т.п.)?
Skirda wrote:2. да. а как иначе?
Ну, например, если в реестре задан путь, оканчивающийся на \, то класть по этому пути файл с именем по умолчанию.
Skirda wrote:3. здесь у меня была другая мысль, вместо буквы диска применить просто "Far."...
Может всё же не стоит делать столь неочевидные подстановки? Просто исключить букву диска из шаблона по умолчанию для сменных носителей и всё.
Skirda wrote:4. ну эт как реализовать ;-) вернее - как скажете, если будет удобно переменные окружения - то да.
Да, переменные окружения будет удобно, притом, разумеется, чтобы подстановка происходила в момент обновления файла.
Skirda wrote:DVD. А что здесь не так? "CD.%L.%SN.tree" разве не подойдет, как обобщение?
А нельзя ли ввести ещё одну переменную (например, %T): тип носителя (перфокарта, магнитная лента, флоп, CD, DVD, флэшка и т.п.)? Её бы там и применить…
HaRT wrote:PPS И хорошо бы ещё иметь опцию, какие атрибуты задать для такого файла.
Хотя бы в реестре…

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

1. Хороший вопрос. Сейчас для CD в папке, где валяется FAR, создается Tree.Cache. ХЗ. Подумать/обсудить надо.

2. ну да, разумно. А имя по умолчанию, я так разумею, будет "Tree.Far"?

3. Обсуждаемо

4. Ок

"%T" говоришь... хмм.. если в это время CD/DVD будет писаться и мы ломанемся "сохрянять" дерево... то болванка запорется.

Про атрибуты принимается. Сейчас обновлю первый топик.

User avatar
HaRT
Moderator
Posts: 9333
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Post by HaRT »

Skirda wrote:2. ну да, разумно. А имя по умолчанию, я так разумею, будет "Tree.Far"?
Конечно, нет! Будет использоваться шаблон по умолчанию, зависящий от типа диска.
Skirda wrote:5. "%T" говоришь... хмм.. если в это время CD/DVD будет писаться и мы ломанемся "сохрянять" дерево... то болванка запорется.
Болванка запорется из-за того, что:
а. пытаемся определить тип привода;
б. сканируем структуру папок;
в. записываем файл дерева;
г. другое (вписать)?
Разумеется, нужен такой способ, который не запарывает болванки. Только непонятно, при чём тут тип носителя.
Skirda wrote:Про атрибуты принимается. Сейчас обновлю первый топик.
Спасибо.

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

HaRT wrote:
Skirda wrote:2. ну да, разумно. А имя по умолчанию, я так разумею, будет "Tree.Far"?
Конечно, нет! Будет использоваться шаблон по умолчанию, зависящий от типа диска.
Не понял. Покажи пример (как если бы ЭТО уже было)
HaRT wrote:
Skirda wrote:5. "%T" говоришь... хмм.. если в это время CD/DVD будет писаться и мы ломанемся "сохрянять" дерево... то болванка запорется.
Болванка запорется из-за того, что:
Понял. Мы ведь в это время и на болванку то не попадем :-)
Принимается

User avatar
HaRT
Moderator
Posts: 9333
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 99 times
Been thanked: 213 times

Post by HaRT »

Skirda wrote:
HaRT wrote:Будет использоваться шаблон по умолчанию, зависящий от типа диска.
Не понял. Покажи пример (как если бы ЭТО уже было)
Например, есть у меня сетевой диск L:, а в реестре написано "L"="%HOMEPATH%\\Trees\". Так вот я ожидаю, что в эту папку будет записан файл с именем по шаблону "%D.%SN.tree".
Skirda wrote:5. "%T" говоришь...
[...]
Принимается
Спасибо.

Kildor
Posts: 1515
Joined: Wed 16 Mar, 2005 06:26
Location: Новосибирск
Been thanked: 1 time
Contact:

Post by Kildor »

Skirda
1. Хороший вопрос. Сейчас для CD в папке, где валяется FAR, создается Tree.Cache. ХЗ. Подумать/обсудить надо.
для всех, неважно, что мы меняем диски?
и что, если у меня в системе больше одного сидирома?
А можно сохранять их хотя бы по имени диска?
или %SN — это и есть имя диска?
Ты мне не выкай!
«ФарФорум не для пользователей!»
Upd:
P.S. Я просто поддерживаю беседу.» © Народ.

xmpp:kildor@jabber.ru

User avatar
Вадим Захаренко
Posts: 922
Joined: Fri 18 Mar, 2005 08:59
Location: Беларусь, Мозырь
Has thanked: 7 times
Contact:

Post by Вадим Захаренко »

Поясните смысл зачем все это?
Что трудно как ручками для конкретного диска пересоздать Tree.Far ? как это делается сейчас

User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

Post by Alexey Samlyukov »

Валь, ты им сначала тестовую версию покажи (то что в 2005-м году по-моему выкатывал) а потом уж на базе той версии и можно будет обсудить чего не хватает...

User avatar
Skirda
Posts: 3475
Joined: Wed 16 Mar, 2005 11:01
Been thanked: 4 times

Post by Skirda »

HaRT, понял, сейчас дополню инфу.

Kildor, я же написал - пока это все обсуждаемо, считай, что разрабатывается "ТЗ на Землю"

Вадим Захаренко, не понял вопроса. Если ты про то, что и в корне диска хранить Tree.Far нормально, то... на домашнем компе так то оно так, а вот на компе общего употребления...

Alexey Samlyukov, как более менее сформируется инфа - выкачу обязательно.

User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

Post by Alexey Samlyukov »

HaRT wrote:PPS И хорошо бы ещё иметь опцию, какие атрибуты задать для такого файла.
А зачем? Поставить ему Hidden, System, Read only и не ломать голову...

User avatar
Вадим Захаренко
Posts: 922
Joined: Fri 18 Mar, 2005 08:59
Location: Беларусь, Мозырь
Has thanked: 7 times
Contact:

Post by Вадим Захаренко »

Skirda
Я про то зачем нужно менять существующее решение
Нужен для диска такой файл - создай ручками
А то тут (пардон) дважды-два через интегралы вычисляется

User avatar
Alexey Samlyukov
Posts: 1760
Joined: Tue 15 Mar, 2005 17:28
Been thanked: 5 times
Contact:

Post by Alexey Samlyukov »

Я бы пожалуй сделал так (не больше и не меньше :)

Code: Select all

+==================================================+ 
 | Хранить файл структуры папок для:                | 
 |   [ ] локальных дисков                           | 
 |       шаблон: "%D.%SN.tree"                      |
 |   [ ] сетевых дисков                             | 
 |       шаблон: "%D.%SN.tree"                      |
 |   [ ] сетевых путей                              | 
 |       шаблон: "%SR.%SH.tree"                     |
 |   [ ] сменных дисков                             | 
 |       шаблон: "%D.%SN.tree"                      |
 |   [ ] CD-дисков                                  | 
 |       шаблон: "CD.%L.%SN.tree"                   |
 +--------------------------------------------------+ 
 | Не создавать файл для следующих дисков:          |
 |   A,B,E                                          |
 | Хранить структуру в файле начиная с ** каталогов | 
 +--------------------------------------------------+ 
 |              [ Ok ]  [ Cancel ]                  | 
 +==================================================+ 

 Атрибут для файла - Hidden, System, Read only.  
 В реестре держать кей SaveTreePath - путь к папке где будем хранить все файлы-
 по умолчанию это Local Settings\FarTreeCache. 

Post Reply

Return to “Предложения и идеи”