如果你正在学习 Deno 并试图读取文件时,你可能会遇到一个错误,即 PermissionDenied
。这是因为默认情况下,Deno 不允许无法被代码路径直接访问的文件系统访问。然而,有些情况下,我们需要访问这些文件。在这篇文章中,我们将探索如何解决这个问题,并介绍如何在 Deno 中读取文件。
错误信息:PermissionDenied
在 Deno 中,当你尝试访问一个不允许的路径时,会出现 PermissionDenied
错误。
-------------------------------- -- --- ----------------
这是因为默认情况下,Deno 只允许访问代码直接路径下的文件,以确保安全性。
解决方法
要访问非直接路径下的文件,我们需要使用 --allow-read
标志,允许 Deno 访问文件系统中的其他位置。
---- --- ------------ ------
或者,你可以使用 Deno.permissions.query()
方法来申请访问文件系统的权限。
----- ------ - ----- ------------------------ ----- ------- ----- --------------- --- -- ------------- --- ---------- - ----- ---- - ----- ----------------------------------- ------------------ - ---- - ---------------- ----- ---- --- ---- ------ -- --- -------- -
示例代码
下面是一个示例程序,它演示了如何使用 Deno 读取一个文件。
----- ---- - ----- -------------------------- ----- ------ - --- ---------------- ----- ------------------ --------------- ------------------------------ -------------
在这里,我们打开了 sample.txt
文件,并使用 Deno.open()
方法获得了一个文件句柄。接下来,我们创建了一个 Uint8Array
缓冲区,并使用 await file.read()
将文件内容读取到这个缓冲区中。最后,我们使用 console.log()
打印出缓冲区中读取的文件内容,并使用 file.close()
关闭文件句柄。
结论
在 Deno 中,访问文件系统需要明确申请权限。要读取非直接路径下的文件,我们需要使用 --allow-read
标志或 Deno.permissions.query()
方法。通过本文,你已经了解了如何在 Deno 中访问文件系统,并学会了如何读取文件。
希望这篇文章能够对你有所帮助,让你更好地理解 Deno 文件系统相关的知识。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672887c52e7021665e208ff7