检查Node.js路径是否存在。

14

我只想知道路径是否存在。这是我的代码:

var path = require('path'); // exists path

看起来,如果你只是想保险起见,在尝试对文件进行操作之前检查文件是否存在,那么“NPM方式”就是不这样做,而是在操作失败时处理错误。例如,使用fs.readFile()而不先检查文件是否存在...(原因在于文件可能存在,但当你去访问它时,它可能已经不存在等等。) - Andrew
1个回答

17

使用fs.existsSync()方法来检查文件系统中是否存在一个文件的方式:

const fs = require('fs')

const path = './file.txt';

if (fs.existsSync(path)) {
  //file exists
}

这个方法是同步的,要以异步方式检查文件是否存在,可以使用 fs.access(),它可以在不打开文件的情况下检查文件是否存在:

fs.access(path, fs.F_OK, (err) => {
  if (err) {
    console.error(err)
    return
  }

  //file exists
})

1
@RahulTripathi 真的很快 :) - yasaricli
11
path.exists()在0.8.0及更高版本中已被弃用。请改用fs.exists() - ebohlman
6
fs.exists()也将被弃用。你可能想使用某个版本的stat,请注意更新。 - Hans
1
看起来 fs.access() 是需要使用的东西。 - th3coop
请不要鼓励人们将path作为全局字符串使用,这与其被引用为require('path')的约定冲突。 - 1owk3y
请不要鼓励人们将path作为全局字符串使用,这与它通常被引用为require('path')的约定冲突。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接