gpt4 book ai didi

file - openFile - 权限被拒绝 - 读取和写入同一文件时

转载 作者:行者123 更新时间:2023-12-04 17:55:49 26 4
gpt4 key购买 nike

当我尝试向文件写入内容时出现“openFile - permission denied”错误:

saveFile content path = do
writeFile path (show content)

为什么?

最佳答案

从您的问题来看,您似乎在同一文件上使用 System.IO 中的 readFilewriteFile

记住 System.IO.readFile 惰性,这意味着文件句柄最初是打开的,然后当您的程序需要数据时,将读取片段。只有在读取了所有数据或删除了对文件的所有引用后,文件句柄才会关闭。在此之前,资源被锁定

您需要确保在尝试写入文件之前已完全读取该文件,或者以某种方式关闭该文件。实现此目的的一种简单方法是使用严格的 IO。例如:

loadFileStrict :: Read a => FilePath -> IO a
loadFileStrict f = do
s <- readFile f
length s `seq` return s

在这里,我们在返回结果之前询问字符串的长度。这会强制读取全部内容。

此模式在 strict 中捕获包。

关于file - openFile - 权限被拒绝 - 读取和写入同一文件时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6081794/

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