io/ioutil
を使用してい
:Goで相対パスを使用してファイルを開くにはどうすればよいですか?
fileBytes, err := ioutil.ReadFile("/absolute/path/to/file.txt")
をそして、それは正常に動作しますが、これは正確に移植性がありません。私の場合、私が開きたいファイルが私のGOPATHであり、例えば:
:/Users/matt/Dev/go/src/github.com/mholt/mypackage/data/file.txt
data
フォルダを右ソースコードと一緒に乗っているので、私は、相対パスを指定してみたいです
data/file.txt
しかし、その後、私はこのエラーを取得する:
panic: open data/file.txt: no such file or directory
どのように私は彼らが私の移動コードと一緒に住んでいる場合は特に、彼らの相対パスを使用してファイルを開くことができますか?
GOPATHは、あなたのプログラムがコンパイルされるとない大きな意味を持っている、とさえ少ないあなたがそれを配布する場合。 –
あなたが望むように思えるのは、コンパイルされたプログラムにファイルを埋め込むのに似ています。 –
データファイルをソースとは別にしたいのですが。データファイルは、プログラムの機能にとって不可欠です。だから誰かが私のソースコードを(データファイルを横にして)プルダウンしてコンパイルして実行すると、データファイルはソースコードの近くまたはプログラムが実行されている場所の近くに存在するため、相対パスを使用してロードされます。 – Matt