Latest post of the previous page:
УбедилSavePathTree
- Вадим Захаренко
- Posts: 922
- Joined: Fri 18 Mar, 2005 08:59
- Location: Беларусь, Мозырь
- Has thanked: 7 times
- Contact:
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Добавил:
* %F - тип файловой системы (NTFS, CDFS, ... - то, что вернет GetVolumeInformation)
* %P - Remote путь (здесь символы '\' преобразуются в '_')
Перечитал еще раз т.н. ТЗ - полная лабуда. Чувствую - логика где-то хромает...
Наверное для начала сделаю проще, т.с. 3-й вариант.
1. В реестре раздел "SaveTreePath".
2. В нем:
3. Если что-то не задано, то
3.1 для локальных дисков используется [Local AppData\Far]
3.2 для остальных [%HOMEDRIVE%\%HOMEPATH%\Far]
3.3 если %HOMEDRIVE% и %HOMEPATH% не определены, то [%APPDATA%\Far]
Пояснения относительно п.3
* Локальные диски - они и в Африке локальные.
* Остальные диски - если мы сидим в сети, то обычно имеем домашний каталог (и/или перемещаемый профиль - это про %APPDATA%).
Т.е., подразумевается, что со сменными дисками, сидюками, мапленными дисками и сетевыми путями мы можем работать с любого места, подключенного к сети и... (если дальше не додумаете - попробую потом разжевать )
* %F - тип файловой системы (NTFS, CDFS, ... - то, что вернет GetVolumeInformation)
* %P - Remote путь (здесь символы '\' преобразуются в '_')
Перечитал еще раз т.н. ТЗ - полная лабуда. Чувствую - логика где-то хромает...
Наверное для начала сделаю проще, т.с. 3-й вариант.
1. В реестре раздел "SaveTreePath".
2. В нем:
Code: Select all
LocalDisk:REG_SZ - шаблон для локальных дисков
NetDisk:REG_SZ - шаблон для мапленных сетевых дисков
NetPath:REG_SZ - шаблон для сетевых путей дисков
RemovableDisk:REG_SZ - шаблон для сменных дисков
CDROM:REG_SZ - шаблон для CD-дисков
3.1 для локальных дисков используется [Local AppData\Far]
3.2 для остальных [%HOMEDRIVE%\%HOMEPATH%\Far]
3.3 если %HOMEDRIVE% и %HOMEPATH% не определены, то [%APPDATA%\Far]
Пояснения относительно п.3
* Локальные диски - они и в Африке локальные.
* Остальные диски - если мы сидим в сети, то обычно имеем домашний каталог (и/или перемещаемый профиль - это про %APPDATA%).
Т.е., подразумевается, что со сменными дисками, сидюками, мапленными дисками и сетевыми путями мы можем работать с любого места, подключенного к сети и... (если дальше не додумаете - попробую потом разжевать )
Подумал еще чуток и... скатился до варианта 4.
1. Исходные данные:
1.1 TreePathLocal:REG_SZ - путь к деревяхам локальных дисков (по умолчанию [Local AppData\Far])
1.2 TreePath:REG_SZ - путь к деревяхам остальных дисков (по умолчанию [%HOMEDRIVE%\%HOMEPATH%\Far])
1.3 MinTreeCount:REG_DWORD - минимальное количество каталогов для сохранения в файл
1.4 TreeFileAttr:REG_DWORD - Атрибут для файла (по умолчанию Hidden, System, Read only)
1.5 LocalDisk:REG_DWORD, NetDisk:REG_DWORD, RemovableDisk:REG_DWORD, CDDisk:REG_DWORD - Правила: {0|1|2} = {несоздавать|создавать|Tree.Far в корне}
2. Имя файла-деревяхи всегда будет в формате type.disk.serial.label.fsys.remote.tree,
здесь компоненты имени:
Недостающие компоненты не указываются (например, если метки у локального дика Це нет, то будет нечто L.C.48D10248..NTFS..tree)
3. Если type = L, то FAR будет сохранять файл в [TreePathLocal]
4. Остальные сохраняем в [TreePath]; если в [TreePath] записать не удается - пробуем в [AppData\Far], иначе пробуем в [Local AppData\Far], иначе - не пишим вообще (или в корень?)
5. Перед построением дерева сначала ищем файл в порядке:
5.1 Tree.Far в корне (если нашли - работаем с ним)
5.2 Иначе формируем имя как в п.2 и порядок поиска будет: [Reg:TreePathLocal], [Reg:TreePath], [Local AppData\Far], [%HOMEDRIVE%\%HOMEPATH%\Far], [AppData\Far]
5.3 Не нашли ничего - сканируем диск и сохраняем файл деревяху согласно пп.3 и 4.
1. Исходные данные:
1.1 TreePathLocal:REG_SZ - путь к деревяхам локальных дисков (по умолчанию [Local AppData\Far])
1.2 TreePath:REG_SZ - путь к деревяхам остальных дисков (по умолчанию [%HOMEDRIVE%\%HOMEPATH%\Far])
1.3 MinTreeCount:REG_DWORD - минимальное количество каталогов для сохранения в файл
1.4 TreeFileAttr:REG_DWORD - Атрибут для файла (по умолчанию Hidden, System, Read only)
1.5 LocalDisk:REG_DWORD, NetDisk:REG_DWORD, RemovableDisk:REG_DWORD, CDDisk:REG_DWORD - Правила: {0|1|2} = {несоздавать|создавать|Tree.Far в корне}
2. Имя файла-деревяхи всегда будет в формате type.disk.serial.label.fsys.remote.tree,
здесь компоненты имени:
Code: Select all
type = L - local, C - CD, N - Network, R - Removable.
diks = буква диска, если нет - пусто
serial = серийный номер
label = метка
fsys = тип файловой системы
remote = __host_share (если есть)
tree = tree
3. Если type = L, то FAR будет сохранять файл в [TreePathLocal]
4. Остальные сохраняем в [TreePath]; если в [TreePath] записать не удается - пробуем в [AppData\Far], иначе пробуем в [Local AppData\Far], иначе - не пишим вообще (или в корень?)
5. Перед построением дерева сначала ищем файл в порядке:
5.1 Tree.Far в корне (если нашли - работаем с ним)
5.2 Иначе формируем имя как в п.2 и порядок поиска будет: [Reg:TreePathLocal], [Reg:TreePath], [Local AppData\Far], [%HOMEDRIVE%\%HOMEPATH%\Far], [AppData\Far]
5.3 Не нашли ничего - сканируем диск и сохраняем файл деревяху согласно пп.3 и 4.
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Ну вот, сперва раздразнили конфигурируемостью, а теперь всё переигрывается.Skirda wrote:Подумал еще чуток и... скатился до варианта 4.
А в чём такое существенное отличие CD/DVD от прочих сменных дисков, чтобы их выделять отдельной статьёй?Skirda wrote:type = L - local, C - CD, N - Network, R - Removable
Думаю, чем проще, тем лучшеHaRT wrote:Ну вот, сперва раздразнили конфигурируемостью, а теперь всё переигрывается.Skirda wrote:Подумал еще чуток и... скатился до варианта 4.
Для сортирябильности... Можно и не делать...HaRT wrote:А в чём такое существенное отличие CD/DVD от прочих сменных дисков, чтобы их выделять отдельной статьёй?Skirda wrote:type = L - local, C - CD, N - Network, R - Removable
На самом деле 4-й вариант родился из...
внимательно пересмотрел сорцы и понял, что ЭТО уже как бы есть (правда только для RO-дисков), но хранится в %FAR%\Tree.Cache.
Например, деревяха для \\Server\Distr$ (шара для всех без исключения только для чтения) будет называться (называется).207afad8.NTFS.__Server_Distr$_.
Для сидюков вместо NTFS сейчас CDFS.
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
Skirda Было у нас в корне диска по файлику и папка в ФАРе, а теперь будет просто жуть, да и весь этот хлам кто после себя будет убирать? Я??
Еще - конвертнул я из фата в нтфс - уже другой файл, сменил лаэбл - еще на порядок больше, а потом и букву поменял - еще на три порядка больше + еще комбинации... в топку это всё.
Еще - конвертнул я из фата в нтфс - уже другой файл, сменил лаэбл - еще на порядок больше, а потом и букву поменял - еще на три порядка больше + еще комбинации... в топку это всё.
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
ИМХО:
0. Старое хранение файлов индексов отменяется.
1. Индексы храним в одной единственной папке - AppData\Far\TreeCache (атрибут у папки системный, скрытый).
2. Ключ в техинфо "TreePath" позволяет задать другое место.
3. В папке TreeCache файлы имеют названия (по букве диска) А.tree, В.tree. Для CD - серийник.tree
4. В диалоге-настройке указываем:
"Не создавать файл для следующих дисков: B,E"
0. Старое хранение файлов индексов отменяется.
1. Индексы храним в одной единственной папке - AppData\Far\TreeCache (атрибут у папки системный, скрытый).
2. Ключ в техинфо "TreePath" позволяет задать другое место.
3. В папке TreeCache файлы имеют названия (по букве диска) А.tree, В.tree. Для CD - серийник.tree
4. В диалоге-настройке указываем:
"Не создавать файл для следующих дисков: B,E"
Last edited by Alexey Samlyukov on Fri 27 Apr, 2007 06:24, edited 1 time in total.
Ок. Предлагайте свое. Мы ведь пока обсуждаем!
Цель - вынести нах Tree.Far из корня и Tree.Cache из %FAR%.
Причины:
1. Безопасность/приватность (про корень)
2. В нормальной ситуации "C:\Program Files" для простых смертных только на чтение, а т.к. "C:\Program Files\Far" наследует права в большенстве случаев, то и каталог Tree.Cache создаваться не будет.
Цель - вынести нах Tree.Far из корня и Tree.Cache из %FAR%.
Причины:
1. Безопасность/приватность (про корень)
2. В нормальной ситуации "C:\Program Files" для простых смертных только на чтение, а т.к. "C:\Program Files\Far" наследует права в большенстве случаев, то и каталог Tree.Cache создаваться не будет.
Как здесь быть с сетевыми каталогами?Alexey Samlyukov wrote:1. Индексы храним в одной единственной папке - AppData\Far\TreeCache (атрибут у папки системный, скрытый).
2. Ключ в техинфо "TreePath" позволяет задать другое место.
Я сажусь на другую тачку в сети, логинюсь, мне мапяться нужные диски и... для моего домашнего отмапленного диска снова создавать дерево?
- Centaur
- Posts: 1083
- Joined: Tue 05 Apr, 2005 20:09
- Location: Novosibirsk, Russia
- Been thanked: 2 times
Если держать в AppData, то с сетевыми дисками проблем не будет. Проблемы будут с локальными дисками (за C.tree подерутся две разные машины). Их можно избежать, если помечать файлы серийниками дисков. Проблемы появятся вновь, если на двух машинах диск с одной буквой будет помечен одним серийником (возможно, если диски получены клонированием образа и программа клонирования не назначает жертвам новые серийники).
Стоит ли кэши локальных несъёмных дисков держать отдельно в Local AppData — тоже не факт. Я бы, вероятно, не отказался, сидя за одной машиной, иметь возможность посмотреть, что у меня есть на другой машине.
Стоит ли кэши локальных несъёмных дисков держать отдельно в Local AppData — тоже не факт. Я бы, вероятно, не отказался, сидя за одной машиной, иметь возможность посмотреть, что у меня есть на другой машине.
- Вадим Захаренко
- Posts: 922
- Joined: Fri 18 Mar, 2005 08:59
- Location: Беларусь, Мозырь
- Has thanked: 7 times
- Contact:
Лучше всего имя файла давать по серийному номеру
<SN>.tree - со сменой имени диска
файлик иметь такую структуру
Место хранения - дерева стандартное для всех
Можно в настройках указать где хранить для каждого типа дисков
Если кто хочет изменить меняет в деревяшке параметр Storage
Значение
Пусто - настройки по умолчанию
Source - на самом приводе
иначе путь к файлу
По поводу клонирования и одного номера диска - по моему не так, но не утверждаю.
Alexey Samlyukov
<SN>.tree - со сменой имени диска
файлик иметь такую структуру
Code: Select all
[Info]
Storage=
DriveName=C:\ | \\Server\Shara$
SN=1234-5678
FS=NTFS
...
[Tree]
C:\Progran Files\
Можно в настройках указать где хранить для каждого типа дисков
Если кто хочет изменить меняет в деревяшке параметр Storage
Значение
Пусто - настройки по умолчанию
Source - на самом приводе
иначе путь к файлу
По поводу клонирования и одного номера диска - по моему не так, но не утверждаю.
Alexey Samlyukov
- не нравится - не используй тогдав топку это всё.
- Alexey Samlyukov
- Posts: 1765
- Joined: Tue 15 Mar, 2005 17:28
- Been thanked: 7 times
- Contact:
- Вадим Захаренко
- Posts: 922
- Joined: Fri 18 Mar, 2005 08:59
- Location: Беларусь, Мозырь
- Has thanked: 7 times
- Contact: