CurrentDirectory и плагины

Место, где разработчики плагинов могут поделиться своим опытом.
User avatar
den po
Posts: 59
Joined: Tue 30 Aug, 2005 07:53
Location: Чувашия, г.Чебоксары
Has thanked: 2 times
Contact:

CurrentDirectory и плагины

Post by den po » Thu 01 Oct, 2009 16:35

drkns 27.09.2009 01:05:56 +0200 - build 1145
2. Свершилось то, о чём так долго говорили большевики - far не использует SetCurrentDirectory при навигации по папкам.
...
Ещё не поздно исправиться и начать использовать FCTL_GETCURRENTDIRECTORY.
что-то не соображу, как добраться до файла при копировании его из панели архивного плагина в панель моего?
JUST_DAn_PO

User avatar
John Doe
Бюрократ
Posts: 12323
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 168 times

Re: CurrentDirectory и плагины

Post by John Doe » Thu 01 Oct, 2009 16:47

Пока никто не доработал архиваторные плагины - точно никак.
А с мултиарком - это невозможно в принципе, поскольку целевая директория должна быть текущей, что в данном случае невозможно.
Разве что распаковывать во временную директорию, а потом автоматически копировать средствами фара...

Впрочем это лишнее, пусть хотя бы сообщает что мол распаковка невозможна

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: CurrentDirectory и плагины

Post by DrKnS » Thu 01 Oct, 2009 19:11

den po wrote:что-то не соображу, как добраться до файла при копировании его из панели архивного плагина в панель моего?
Давай с подробностями: как раньше добирался, как теперь пытаешься и что останавливает.

User avatar
den po
Posts: 59
Joined: Tue 30 Aug, 2005 07:53
Location: Чувашия, г.Чебоксары
Has thanked: 2 times
Contact:

Re: CurrentDirectory и плагины

Post by den po » Fri 02 Oct, 2009 15:20

DrKnS wrote:
den po wrote:что-то не соображу, как добраться до файла при копировании его из панели архивного плагина в панель моего?
Давай с подробностями: как раньше добирался, как теперь пытаешься и что останавливает.
дык эта, раньше из текущего каталога файлы забирал, и было ок.
а потом в коде фара появились изменения, о чём гласит цитата в первом сообщении. и стало не ок.

разжую на всякий. раньше при копировании из одного плагина в другой файлы помещались (распаковывались) во временную папку, откуда целевой плагин легко файлы забирал, потому что папка эта была текущей. а теперь узнать, откуда брать файлы, не представляется возможным. FCTL_... выдаёт пустую строку, текущая папка - папка плагина, и где лежат файлы, совершенно неясно.
JUST_DAn_PO

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Re: CurrentDirectory и плагины

Post by DrKnS » Fri 02 Oct, 2009 16:50


User avatar
den po
Posts: 59
Joined: Tue 30 Aug, 2005 07:53
Location: Чувашия, г.Чебоксары
Has thanked: 2 times
Contact:

Re: CurrentDirectory и плагины

Post by den po » Fri 02 Oct, 2009 19:18

оно. и FCTL_GETCURRENTDIRECTORY ни к чему. это в будущих ревизиях будет?

или это намёк, мол возьми да сделай?
JUST_DAn_PO

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Текущая директория Фара

Post by Shmuel » Thu 02 Apr, 2015 20:57

Просьба прояснить ситуацию, т.к. давно ощущаю недопонимание в данной области.
Для конкретности, отбросим плагиновые панели, рассматриваем только панели Фара.
ANSI-плагинов не установлено ни одного.

Вопросы:
1. panel.GetPanelDirectory(nil,1).Name (FCTL_GETPANELDIRECTORY) и far.GetCurrentDirectory() (FSF.GetCurrentDirectory) у меня при гулянии по разным папкам возвращают одно и то же (папку активной панели). Так должно быть?

2. Команда dir выдаёт содержимое активной панели. Так должно быть?

3. Функции Viewer() и Editor() не могут открыть файл в активной панели, если не указать им полного пути. Так должно быть?

4. Так какая же директория является текущей в Фаре и с помощью какого API её получить?

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Текущая директория Фара

Post by DrKnS » Thu 02 Apr, 2015 21:09

1. Да.
2. Да.
3. Нет. Подробности и примеры приветствуются (у меня работает).
4. FSF.GetCurrentDirectory.

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Текущая директория Фара

Post by Shmuel » Thu 02 Apr, 2015 21:41

DrKnS wrote: 3. Нет. Подробности и примеры приветствуются (у меня работает).
Да, это работает, я предоставил непроверенную информацию.
А не работает вот что: lua:=win.GetFileAttr("file.ext").
- с полным путём - работает
- если загружен хотя бы 1 ANSI-плагин - работает и без полного пути

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Текущая директория Фара

Post by DrKnS » Thu 02 Apr, 2015 22:01

Да, так тоже должно быть.

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Текущая директория Фара

Post by Shmuel » Thu 02 Apr, 2015 22:04

DrKnS wrote: Да, так тоже должно быть.
Почему?
io.open тоже не работает.


Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Текущая директория Фара

Post by Shmuel » Thu 02 Apr, 2015 22:42

Это показывает историю вопроса, да. Но не объясняет, почему так должно быть. То-есть я не вижу связи, почему поддержка длинных путей должна убить возможность вызывать функции Windows API, задавая пути относительно текущей директории (если она действительно текущая, а не прикидывается ею). Возможно, недопонимаю что-то, поэтому и завёл тему.

User avatar
DrKnS
Posts: 5338
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 6 times
Been thanked: 217 times

Текущая директория Фара

Post by DrKnS » Thu 02 Apr, 2015 22:50

По второй ссылке написано же:
Far устанавливает "текущий каталог" процесса исключительно в целях совместимости со старыми плагинами, и никто не гарантирует, что он всегда будет соответствовать каталогу, открытому в текущей панели.
Старые плагины отсутствуют, каталог не соответствует.

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Текущая директория Фара

Post by Shmuel » Thu 02 Apr, 2015 22:58

DrKnS wrote: По второй ссылке написано же:
ОК, спасибо.

Shmuel
Posts: 5836
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 213 times

Текущая директория Фара

Post by Shmuel » Thu 02 Apr, 2015 23:06

И ещё вопрос: при наличии ANSI-плагинов поддержка длинных путей не производится или становится менее полноценной?

Post Reply

Return to “Разработка плагинов”