getDatafilename gibt ein nicht existierendes Verzeichnis zurück
Frage
Ich kann keine Datendateien in einer Kabalendistel verpacken lassen. Das Verzeichnis, das mit produziert wird getDataFileName
Nach der Installation des Pakets existiert nicht.
Main.hs:
module Main (
main
) where
import Paths_mypackage
main = do file <- getDataFileName "mydata.txt"
putStrLn file
print =<< readFile file
mypackage.cabal (generiert von Leksah nach dem Durchsuchen der Datei):
data-files: /Users/peter/Documents/haskell/mypackage/data/mydata.txt
mydata-dir: ""
Ausgabe:
mypackage: /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt: openFile: does not exist (No such file or directory)
/Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt
Lösung
Die Zeilen in der .cabal -Datei sollten sein
data-files: mydata.txt
data-dir: data
Dann installiert Cabal die Datendatei am entsprechenden Standort. /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt
In Ihrem Fall funktioniert das Programm.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow