这是一个简短的教程,如何用nodejs代码检查文件系统中的文件是否存在。我们有很多方法可以检查文件在节点中是否存在
- 使用 existsSync 和 exists
- fs访问和accessSync
- 异步和 await promises
文件检查可以通过同步和异步进行
exists函数
fs提供了两个函数来检查文件路径在操作系统文件系统中是否存在。exists :这是一种异步检查方式existsSync :同步检查文件是否存在。
下面是一个existsSync的例子
const fs = require("fs");
console.log('start');
if (fs.existsSync("user.xml")) {
console.log('exists');
}
console.log('completed');
这里是路径存在与否的例子
const fs = require("fs");
console.log('start');
if (fs.exists("user.xml"(err) => {
if(err)
console.log("not exists");
});
console.log('completed');
使用fs access和accessSync函数检查文件或文件夹是否存在
access 和 函数来检查文件系统的读写权限 函数用于同步执行, 用于异步操作accessSync access accessSync
fs.constants.F_OK 检查文件是否可见 fs.constants.R_OK和fs.constants.W_OK是用于读取和写入权限。
下面是一个accessSync的例子
const fs = require("fs");
if (fs.accessSync("user.xml",fs.constants.F_OK)) {
console.log('exists');
}
console.log('completed');
下面是一个访问函数的例子
const fs = require("fs");
fs.access("user.xml", fs.constants.F_OK, (err) => {
if(err){
console.log('file not exists',err)
}
console.log('file exists');
});
使用Async和Await的承诺
我们也可以使用async和await来检查异步执行。
下面是一系列的步骤
- isFileExists方法,新的承诺被创建并解析为一个存在的文件,否则解析为一个错误。
function isFileExists(path){
return new Promise((resolve, fail) => fs.access(path, fs.constants.F_OK,
(err, data) => err ? fail(err) : resolve(data))
}
async function checkFile() {
var exists = await isFileExists('user.xml');
if(exists){
console.log('file exists');
}
}
结语
综上所述,我们学习了使用fs模块在Nodejs中检查路径存在的不同方法。