以上の2種類があります。
質問によるとGUIでというようには見えないので「CLIによる慣習」を解説します。
CLIで入力ファイルを指定するのはコマンドライン引数で指定するという慣習を使うのが一般的です。
この慣習に則っておくと、デスクトップ上のドラッグ&ドロップ操作が入力ファイルを指定した状態でプログラムを起動するといったことができるようになります。
例えば「sample.exe」というプログラムがある場合、
コマンドプロンプトから
shell
1> sample.exe inputfile.csv
というように指定したらプログラムが「inputfile.csv」を読み込んで動作するようにしておきます。
この時、「sample.exe」のアイコンに「inputfile.csv」ファイルアイコンをドラッグ&ドロップすることでも同様な挙動になります。
こういう実装にしておくと、ユーザーは任意のファイルをプログラムに入力することができるわけです。
もちろん質問者さんのように標準入力待ち(fmt.Scanなど)を作っておき、ターミナル(コマンドプロンプト等)に入力ファイルアイコンをドラッグ&ドロップするとファイルパスを入力したり、ファイルのコピーをしてペーストでファイルパスを貼り付け入力することもできます。(最後にENTERキーの入力は必要です)
あとはユーザーがどちらを期待するのかで選べばいいんじゃないでしょうか。
追記
GUIによる場合は各種OSのファイル選択ダイアログを開くことで対応します。
以下は最もシンプルな実装例です。
go
1package main
2
3import (
4 "log"
5
6 "github.com/sqweek/dialog"
7)
8
9func main() {
10 filename, err := dialog.File().Filter("Mp4 file", "mp4").Load()
11 if err != nil {
12 log.Fatal(err)
13 }
14 log.Println(filename)
15}
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/25 07:16