如何检查 node.js 中给定的路径是文件还是目录?
有时需要检查给定的路径是文件还是目录,以便根据结果执行不同的操作。例如,分别记录目录和文件的信息。 在 Node.js 中,文件处理由 fs 模块处理。你可以在这里了解更多。我们可以用同步和异步的方式检查 Node.js 中文件或目录的路径。
注意:如果关心应用性能,异步版本通常更好。
同步方法:同步操作非常适合在返回模块之前执行一次性文件/目录操作。要在 fs 模块中检查同步模式下的路径,我们可以使用 statSync()方法。fs.statSync(路径)方法返回 fs 的实例。分配给变量统计的统计。一个 fs。Stats 对象提供关于文件的信息。如果文件路径是文件,stats.isFile()方法返回 true,否则返回 false。如果文件路径是目录,stats.isDirectory()方法返回真,否则返回假。
例 1:
// Require the given module
var fs = require('fs');
// Use statSync() method to store the returned
// instance into variable named stats
var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geeks.js");
// Use isFile() method to log the result to screen
console.log('is file ? ' + stats.isFile());
var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geek");
// Use isDirectory() method to log the result to screen
console.log('is directory ? ' + stats.isDirectory());
输出:
is file ? true
is directory ? true
例 2:
// Require the given module
var fs = require('fs');
// Use statSync() method to store the returned
// instance into variable named stats
var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geek");
// Use isFile() method to log the result to the screen
console.log('is file ? ' + stats.isFile());
var stats = fs.statSync("/Users/divyarani/Documents/geekforgeeks/geeks.js");
// Use isDirectory() method to log the result to screen
console.log('is directory ? ' + stats.isDirectory());
输出:
is file ? false
is directory ? false
异步方法:在异步版本中,函数内的代码块对最终用户来说大多是非阻塞的,不会阻止用户对各个子进程执行不同的动作。要在 fs 模块中以异步模式检查路径,我们可以使用 fs.stat()方法。fs.stat()方法有两个参数,第一个参数是路径,第二个参数是回调函数,有两个参数,一个是发生错误时的错误,第二个参数是调用 fs.stat()方法检索的数据,存储在 stats 变量中。如果文件路径是文件,stats.isFile()方法返回 true,否则返回 false。如果文件路径是目录,stats.isDirectory()方法返回真,否则返回假。
例 1:
// Require the given module
var fs = require('fs'),
path = "/Users/divyarani/Documents/geekforgeeks/geek"
// Use stat() method
fs.stat(path, (err, stats) => {
if( !err ){
if(stats.isFile()){
console.log('is file ? ' + stats.isFile());
}
else if(stats.isDirectory()){
console.log('is directory? ' + stats.isDirectory());
}
}
else
throw err;
});
输出:
is directory? true
例 2:
// Require the given module
var fs = require('fs'),
path = "/Users/divyarani/Documents/geekforgeeks/geeks.js"
// Use stat() method
fs.stat(path, (err, stats) => {
if( !err ){
if(stats.isFile()){
console.log('is file ? ' + stats.isFile());
}
else if(stats.isDirectory()){
console.log('is directory? ' + stats.isDirectory());
}
}
else
throw err;
});
输出:
is file ? true
版权属于:月萌API www.moonapi.com,转载请注明出处