Как импортировать файловую ассоциацию?

Столкнулись с проблемой в использовании Far? Здесь можно получить помощь.
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

Вопрос возник тут -- http://forum.farmanager.com/viewtopic.p ... 84#p124984

Надо импортировать одну файловую ассоциацию при установке плагина, в идеале, из бат файла. Я предложил использовать Far.exe /import deploy.farconfig. Этот способ годится для первого раза, когда установка идет вместе с Фаром. Но для обновлений или до-установки к уже работающему Фару не очень годится, потому что, оказывается, что все уже имеющиеся ассоциации будут перезаписаны.

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

P.S. Не так все просто, наверное. Как быть, если подобная ассоциация уже имеется? Сходу - неочевидно. Можно ведь перезаписать, а можно и добавить дополнительно. Точная идентификация ассоциаций вроде не предусмотрена (для сценария "перезаписать имеющуюся, если нет - добавить").
User avatar
DrKnS
Posts: 6120
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 431 times

Как импортировать файловую ассоциацию?

Post by DrKnS »

Сначала экспортировать, затем в полученный xml какими-либо средствами добавить нужное и импортировать обратно?
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

Да, это вариант. Но бат файл установки тут уже не вариант. PowerShell скрипт такое может сделать относительно легко (кому как, конечно).
User avatar
John Doe
Бюрократ
Posts: 14585
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 515 times
Contact:

Как импортировать файловую ассоциацию?

Post by John Doe »

NightRoman wrote:Я предложил использовать Far.exe /import deploy.farconfig. Этот способ годится для первого раза, когда установка идет вместе с Фаром. Но для обновлений или до-установки к уже работающему Фару не очень годится, потому что, оказывается, что все уже имеющиеся ассоциации будут перезаписаны.
Не знаю как сейчас, но в changelog'е есть запись Перед импортом, все текущие ассоциации удаляются (обсуждалось).

Можно было бы добавить ключик, запрещающий удалять, тогда импортировать новую ассоциацию было бы просто.
Но изменить существующую так не получится.

А вот если присвоить всем ассоциациям id, то можно было бы делать что угодно.
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

John Doe wrote:А вот если присвоить всем ассоциациям id, то можно было бы делать что угодно.
Description мог бы сойти за аналог ID в имеющемся формате. Возможно, как "полу-ID". То есть для некоторых команд и операций предполагается, что описание идентифицирует ассоциацию (и пользователь выбирает описание с прицелом на это). А так могут быть и повторения и пустые описания. Ну или пара Маска + Описание может выступать таким полу-ID. Можно подумать, что практичнее из этого.
User avatar
John Doe
Бюрократ
Posts: 14585
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 515 times
Contact:

Как импортировать файловую ассоциацию?

Post by John Doe »

Не проще ли гуид?
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

Кому-как. И "в имеющемся формате" это невозможно.
User avatar
John Doe
Бюрократ
Posts: 14585
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 515 times
Contact:

Как импортировать файловую ассоциацию?

Post by John Doe »

>Кому-как.
В таком случае неплохо бы обосновать своё "как".
Как по мне, то маски относятся к данным, поэтому и не могут служить идентификатором.
А описания ненадёжны, т.к. изменчивы, и могут отсутствовать.

>И "в имеющемся формате" это невозможно.
Формат xml позволяет что угодно, дело за поддержкой в фаре.
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

А что толку обсуждать беспредметно. Фаровцы захотят сделать - сделают, так или иначе, с гуидом или без.
User avatar
John Doe
Бюрократ
Posts: 14585
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 515 times
Contact:

Как импортировать файловую ассоциацию?

Post by John Doe »

Зачем же беспредметно, давайте предметно.
Обсудим, и поместим обоснованное пожелание на мантис.
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

Я уже предложил - Description, как "мягкий" идентификатор. Для понятности можно в UI Description поменять на Name.
А описания ненадёжны, т.к. изменчивы, и могут отсутствовать.
То же и с гуидами, поменял, удалил - результат тот же. Я не против гуидов, если что. Но не скажу, что они мне нравятся.
User avatar
John Doe
Бюрократ
Posts: 14585
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 515 times
Contact:

Как импортировать файловую ассоциацию?

Post by John Doe »

>Description, как "мягкий" идентификатор.
Чуть изменил описание, и уже считается совсем другая ассоциация.

>Для понятности можно в UI Description поменять на Name.
Имя это сурово, один раз и на всю жизнь.
Зачем ограничивать пользователя, при наличии других способов идентифицации?

>То же и с гуидами, поменял, удалил - результат тот же.
Это как "поменял"? Гуиды в интерфейсе скорее всего не нужны (а если и будут, то чего бы их изменять наобум).
User avatar
NightRoman
Posts: 6225
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 42 times
Been thanked: 62 times
Contact:

Как импортировать файловую ассоциацию?

Post by NightRoman »

Меня описания в качестве ИД устраивают. Несмотря на приведенные выше доводы.

А с гуидами - как без них в UI обойтись, где же они будут задаваться?
User avatar
zg
zero-gravity
Posts: 6207
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 206 times
Contact:

Как импортировать файловую ассоциацию?

Post by zg »

NightRoman wrote:А с гуидами - как без них в UI обойтись, где же они будут задаваться?
1. стандартные — заданы в фаре.
2. созданные интерактивно — генериться автоматически.
3. распространяемые третьими лицами — генерится третьими лицами.

ваш к.о.
User avatar
John Doe
Бюрократ
Posts: 14585
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 92 times
Been thanked: 515 times
Contact:

Как импортировать файловую ассоциацию?

Post by John Doe »

NightRoman wrote: А с гуидами - как без них в UI обойтись
Так же, как и сейчас обходимся.
При экспорте можно будет увидеть.
Post Reply

Return to “Нужна помощь”