我想知道这对我来说是否只是一个问题,以及如何解决这个问题.
我现在在$HOME目录中,我可以touch aaa创建一个文件.
然后我发射ghci.我可以import System.Directory导入这个包.
现在问题出现了.如果我尝试doesFileExist aaa,我会得到True因为它确实存在.如果我试试doesFileExist ~/aaa,我会得到False!!!
那有什么问题呢?如果您发现它不清楚,请编辑我.谢谢.
与其他几种语言一样,Haskell不解析~as主目录.〜只是一个常见的unix shell功能.所以它正在寻找一个名为〜的文字目录.
而是试试
import System.FilePath.Posix
import System.Directory
homeDirFile :: FilePath -> IO FilePath
homeDirFile p = fmap (</>p) getHomeDirectory
main = homeDirFile "aaa" >>= doesFileExist >>= print
Run Code Online (Sandbox Code Playgroud)