Detection method: 1. Use "fs.exists(path,callback)"; 2. Use "await util.promisify(fs.stat)('file path')"; 3. Use "fs. access(path[,mode],callback);".
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!