Home >Web Front-end >Front-end Q&A >How to detect whether a file exists in nodejs

How to detect whether a file exists in nodejs

青灯夜游
青灯夜游Original
2021-09-15 17:57:0812044browse

Detection method: 1. Use "fs.exists(path,callback)"; 2. Use "await util.promisify(fs.stat)('file path')"; 3. Use "fs. access(path[,mode],callback);".

How to detect whether a file exists in nodejs

The operating environment of this tutorial: windows7 system, nodejs version 14.15.4, DELL G3 computer.

Nodejs method to detect whether a file exists:

1. Use fs.exists

The exists() function can test whether a file under a certain path exists. Syntax format:

fs.exists(path, callback)
  • path file path to be detected

  • callback callback

    • callback function Contains a parameter exists, true if the file exists, otherwise false.

Note: Since this method belongs to the fs module, the fs module needs to be introduced before use (var fs= require(“fs”) )

Currently fs.exists has been abandoned. In addition, it needs to be clear that the file exists only when it is not used directly.

Example:

fs.exists('/etc/passwd', function (exists) {
  util.debug(exists ? "it's there" : "no passwd!");
});

2. Use fs.stat

fs.stat returns a fs.Stats object, which provides a lot of information about the file, such as file size, creation time, etc. There are two methods, stats.isDirectory() and stats.isFile(), which are used to determine whether it is a directory or a file.

const stats = await util.promisify(fs.stat)('text1.txt'); 
console.log(stats.isDirectory()); // false 
console.log(stats.isFile()); // true

If you just check whether the file exists, it is recommended to use the following fs.access.

3. Use fs.access

fs.access receives a mode parameter to determine whether a file exists, is readable, and writable. The return value is a err parameter.

const file = 'text.txt'; // 检查文件是否存在于当前目录中。
fs.access(file, fs.constants.F_OK, (err) => {
 console.log(`${file} ${err ? '不存在' : '存在'}`);
}); // 检查文件是否可读。
fs.access(file, fs.constants.R_OK, (err) => {
 console.log(`${file} ${err ? '不可读' : '可读'}`); 
}); // 检查文件是否可写。 
fs.access(file, fs.constants.W_OK, (err) => {
 console.log(`${file} ${err ? '不可写' : '可写'}`);
 }); // 检查文件是否存在于当前目录中、以及是否可写。
fs.access(file, fs.constants.F_OK | fs.constants.W_OK, (err) => {
 if (err) {
  console.error( `${file} ${err.code === 'ENOENT' ? '不存在' : '只可读'}`); 
  } else { 
  console.log(`${file} 存在,且可写`); 
  } 
});

[Recommended learning: "nodejs tutorial"]

The above is the detailed content of How to detect whether a file exists in nodejs. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn