Вопрос

Я не могу получить файлы данных, чтобы быть упакованными в кабину. Каталог, который производится с 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 В вашем случае, и программа будет работать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top