这是一个关于如何使用nodejs代码检查文件系统中是否存在文件的简单教程。
我们可以使用各种方法来查看一个文件是否存在于Nodes中:
- 使用 existsSync 和 exists
- fs访问和accessSync
- Async和await承诺
文件检查可以通过同步和异步完成。
fs exists函数
fs
提供了两个函数来检查文件路径在操作系统文件系统中是否存在。 exists
:这是一种异步的检查方式 existsSync
:检查文件是否存在的同步方式。
下面是一个existenceSync的例子
const fs = require("fs");
console.log('start');
if (fs.existsSync("user.xml")) {
console.log('exists');
}
console.log('completed');
输出:
start
exists
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中检查路径存在的不同方法。