How to detect whether a file exists in nodejs

青灯夜游
Release: 2023-01-11 09:20:25
Original
11993 people have browsed it

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)
Copy after login
  • 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!");
});
Copy after login

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
Copy after login

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} 存在,且可写`); 
  } 
});
Copy after login

[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!

Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template