在Deno 中检查文件或目录是否存在可以使用 Deno.stat
或者 Deno.lstat
函数。这两个函数会返回一个 Stat
对象,如果文件或目录不存在,它们会抛出一个错误。通常,我们会结合使用 try...catch
结构来处理这种情况。
下面是一个具体的例子:
typescriptasync 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 回复