Как выбрать файл через системный проводник?
В программе понадобилось открыть проводник и выбрать в нем файл. Как я вижу использование: при работе в терминальной программе я могу ввести опрелеленную комманду и откроется системный проводник в котором можно выбрать файл. После выбора файла в проводнике, в терминальную программу копируется путь к выбранному файлу, а проводник молча закрывается. Далее над файлом по пути осуществляются какие то действия в коде. Как это(открытие прводника и выбор в нем файла) реализовать средствами go? Пишу код и тестирую в debian, соответственно решение необходимо под unix в первую очередь
Ответы (2 шт):
Нашел решение благодаря комментам.
Пакет "github.com/sqweek/dialog"
Но для использования необходимо чтобы в системе был пакет libgtk-3-dev поэтому при использовании придется тянуть зависимость в свой код в виде этого пакета.
sudo apt-get install libgtk-3-dev
Для решения можно использовать библиотеку github.com/ncruces/zenity. Для установки нужно выполнить go get -u github.com/ncruces/zenity.
В своем проекте я использовал библиотеку таким образом:
path, err := zenity.SelectFile(
zenity.FileFilters{
{
Name: "Audio",
Patterns: patterns,
CaseFold: true,
},
}, zenity.Modal())
Если файл выбран успешно, что в err будет содержаться nil, а в path абсолютный путь к файлу. В patterns в обычном массиве перечислены типы файлов, например, ".mp3", ".wav" и так далее. В name удобное для пользователя обозначение.