我想扫描该文件夹,但忽略其中包含的所有文件夹/目录。我在(C:/folder/)中只有.txt文件和其他文件夹,我只想扫描txt文件,并忽略文件夹。
app.get('/generatE', function (req, res) {
const logsFolder = 'C:/folder/';
fs.readdir(logsFolder, (err, files) => {
if (err) {
res.send("[empty]");
return;
}
var lines = [];
files.forEach(function(filename) {
var logFileLines = fs.readFileSync (logsFolder + filename, 'ascii').toString().split("\n");
logFileLines.forEach(function(logFileLine) {
if(logFileLine.match(/.*AUDIT*./)) {
lines.push(logFileLine+'\n');
}
})
})
Use fs.readdir https://nodejs.org/api/fs.html#fs_fs_readdir_path_options_callback or fs.readdirSync https://nodejs.org/api/fs.html#fs_fs_readdirsync_path_options带选项的方法{ withFileTypes: true }
然后使用进行过滤dirent.isFile https://nodejs.org/api/fs.html#fs_dirent_isfile(需要节点 10.10+)。
同步版本
const fs = require('fs');
const dirents = fs.readdirSync(DIRECTORY_PATH, { withFileTypes: true });
const filesNames = dirents
.filter(dirent => dirent.isFile())
.map(dirent => dirent.name);
// use filesNames
异步版本(带有async
/await
,需要节点 11+)
import { promises as fs } from 'fs';
async function listFiles(directory) {
const dirents = await fs.readdir(directory, { withFileTypes: true });
return dirents
.filter(dirent => dirent.isFile())
.map(dirent => dirent.name);
}
异步版本(带回调)
const fs = require('fs');
fs.readdir(DIRECTORY_PATH, { withFileTypes: true }, (err, dirents) => {
const filesNames = dirents
.filter(dirent => dirent.isFile())
.map(dirent => dirent.name);
// use filesNames
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)