Как выбрать файл через системный проводник?

В программе понадобилось открыть проводник и выбрать в нем файл. Как я вижу использование: при работе в терминальной программе я могу ввести опрелеленную комманду и откроется системный проводник в котором можно выбрать файл. После выбора файла в проводнике, в терминальную программу копируется путь к выбранному файлу, а проводник молча закрывается. Далее над файлом по пути осуществляются какие то действия в коде. Как это(открытие прводника и выбор в нем файла) реализовать средствами go? Пишу код и тестирую в debian, соответственно решение необходимо под unix в первую очередь


Ответы (2 шт):

Автор решения: Quester

Нашел решение благодаря комментам.

Пакет "github.com/sqweek/dialog"

Но для использования необходимо чтобы в системе был пакет libgtk-3-dev поэтому при использовании придется тянуть зависимость в свой код в виде этого пакета.

sudo apt-get install libgtk-3-dev
→ Ссылка
Автор решения: Artem Gafarov

Для решения можно использовать библиотеку 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 удобное для пользователя обозначение.

→ Ссылка