Sto usando io/ioutil
di leggere un piccolo file di testo:Come posso aprire file usando percorsi relativi in Go?
fileBytes, err := ioutil.ReadFile("/absolute/path/to/file.txt")
e che funziona bene, ma questo non è esattamente portatile. Nel mio caso, i file che voglio aprire sono nella mia GOPATH, ad esempio:
/Users/matt/Dev/go/src/github.com/mholt/mypackage/data/file.txt
Dal momento che la cartella di data
cavalca a destra a fianco del codice sorgente, mi piacerebbe per specificare solo il percorso relativo:
data/file.txt
Ma allora ottengo questo errore:
panic: open data/file.txt: no such file or directory
Come posso aprire i file utilizzando il loro percorso relativo, specialmente se vivono a fianco il mio codice Go?
Il GOPATH non ha un grande significato una volta che il programma viene compilato, e ancor meno quando si distribuirlo. –
Quello che sembra voler sembrare più come l'incorporamento dei file nel programma compilato. –
Tipo di ... tranne che voglio i file di dati separati dalla sorgente. I file di dati sono vitali per la funzionalità del programma. Quindi quando qualcuno tira giù il mio codice sorgente (con i file di dati lungo il lato) e lo compila e lo esegue, i file di dati vengono caricati utilizzando un percorso relativo perché esistono vicino al codice sorgente o vicino a dove il programma è in esecuzione. – Matt