gpt4 book ai didi

haskell - 与 Haskell 中的 `System.Directory` 混淆

转载 作者:行者123 更新时间:2023-12-02 00:21:45 26 4
gpt4 key购买 nike

我想知道这是否只是我的问题,以及如何解决这个问题。

我现在位于 $HOME 目录中,我可以touch aaa 创建一个文件。

然后我启动 ghci。我可以import System.Directory来导入这个包。

现在问题就出现了。如果我尝试 doesFileExist aaa,我会得到 True 因为它确实存在。如果我尝试 doesFileExist ~/aaa,我会得到 False!!!

那问题出在哪里呢?如果您发现不清楚,请编辑我。谢谢。

最佳答案

Haskell 与许多其他语言一样,不会将 ~ 解析为主目录。 ~ 只是一个常见的 unix shell 功能。所以它正在寻找一个名为 ~ 的文字目录。

尝试一下

import System.FilePath.Posix
import System.Directory

homeDirFile :: FilePath -> IO FilePath
homeDirFile p = fmap (</>p) getHomeDirectory

main = homeDirFile "aaa" >>= doesFileExist >>= print

关于haskell - 与 Haskell 中的 `System.Directory` 混淆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20114399/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com