getDataFileNameは、存在しないディレクトリを返します
質問
データファイルをCabal Distでパッケージ化することはできません。で作成されたディレクトリ getDataFileName
パッケージをインストールした後は存在しません。
main.hs:
module Main (
main
) where
import Paths_mypackage
main = do file <- getDataFileName "mydata.txt"
putStrLn file
print =<< readFile file
mypackage.cabal(ファイルの閲覧後にLeksahによって生成された):
data-files: /Users/peter/Documents/haskell/mypackage/data/mydata.txt
mydata-dir: ""
出力:
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
解決
.cabalファイルの行はある必要があります
data-files: mydata.txt
data-dir: data
その後、CABALは適切な場所にデータファイルをインストールします。 /Users/peter/.cabal/share/mypackage-0.0.1/mydata.txt
あなたの場合、プログラムは機能します。
所属していません StackOverflow