乐闻世界logo
搜索文章和话题

How can one check if a file or directory exists using Deno?

4 个月前提问
4 个月前修改
浏览次数22

1个答案

1

在Deno 中检查文件或目录是否存在可以使用 Deno.stat 或者 Deno.lstat 函数。这两个函数会返回一个 Stat 对象,如果文件或目录不存在,它们会抛出一个错误。通常,我们会结合使用 try...catch 结构来处理这种情况。

下面是一个具体的例子:

typescript
async function fileExists(path: string): Promise<boolean> { try { const stats = await Deno.stat(path); return true; // 文件或目录存在 } catch (error) { if (error instanceof Deno.errors.NotFound) { return false; // 文件或目录不存在 } else { throw error; // 发生了其他类型的错误 } } } const path = "./example.txt"; fileExists(path).then(exists => { console.log(exists ? "文件存在" : "文件不存在"); }).catch(error => { console.error("发生错误:", error); });

在这个例子中,fileExists 函数尝试获取指定路径的状态信息。如果文件或目录存在,则函数返回 true。如果抛出了一个 NotFound 错误,意味着文件或目录不存在,函数则返回 false。如果遇到其他类型的错误,则直接抛出,可能需要上层调用者进行处理。

这样的处理方式既简洁又有效,能够明确区分文件/目录存在、不存在以及其他错误的三种情况。

2024年7月20日 18:55 回复

你的答案