需要使用 node js 忽略一些目录
Need to ignore some Directories using node js
这甚至可以忽略几个子目录并读取主目录中存在的其余子目录
喜欢:
Main Directory
-sub-directory1
-sub-directory2
-ABC Folder
-PQR Folder
-sub-directory3
output:
[sub-directory1
sub-directory2
PQR]
ignore:
[ABC
sub-directory3]
我有读取所有目录和文件的代码,我想区分一些目录
const fs = require("fs");
const path = require("path");
async function getFile(folderPath) {
let files = await fs.readdir(folderPath);
files = await Promise.all(
files.map(async (file) => {
const filePath = path.join(folderPath, file);
const stats = await fs.stat(filePath);
if (stats.isDirectory()) {
return getFile(filePath);
} else if (stats.isFile()) return filePath;
})
);
return files.reduce((all, folderContents) => all.concat(folderContents), []);
}
请帮忙
我写了函数getFilesSync
第一个参数是你想要获取的目录,第二个参数是数组——要忽略的文件夹名称列表。
const fs = require("fs");
function getFilesSync(fPath, ignore, response) {
if (!response) { response = []; }
if (!ignore) { ignore = []; }
var files = fs.readdirSync(__dirname+fPath);
for (var i = 0; i < files.length; i++) {
if (fs.statSync(__dirname+fPath+"/"+files[i]).isDirectory()) {
var ign = false;
for (var j = 0; j < ignore.length; j++) {
if (ignore[j] == files[i]) {
ign = true;
break;
}
}
if (!ign) {
response.concat(getFilesSync(fPath+"/"+files[i], ignore, response));
}
} else {
response.push(fPath+"/"+files[i]);
}
}
return response;
}
console.log( getFilesSync("/test", ["test1", "test2"]) );
这甚至可以忽略几个子目录并读取主目录中存在的其余子目录
喜欢:
Main Directory
-sub-directory1
-sub-directory2
-ABC Folder
-PQR Folder
-sub-directory3
output:
[sub-directory1
sub-directory2
PQR]
ignore:
[ABC
sub-directory3]
我有读取所有目录和文件的代码,我想区分一些目录
const fs = require("fs");
const path = require("path");
async function getFile(folderPath) {
let files = await fs.readdir(folderPath);
files = await Promise.all(
files.map(async (file) => {
const filePath = path.join(folderPath, file);
const stats = await fs.stat(filePath);
if (stats.isDirectory()) {
return getFile(filePath);
} else if (stats.isFile()) return filePath;
})
);
return files.reduce((all, folderContents) => all.concat(folderContents), []);
}
请帮忙
我写了函数getFilesSync
第一个参数是你想要获取的目录,第二个参数是数组——要忽略的文件夹名称列表。
const fs = require("fs");
function getFilesSync(fPath, ignore, response) {
if (!response) { response = []; }
if (!ignore) { ignore = []; }
var files = fs.readdirSync(__dirname+fPath);
for (var i = 0; i < files.length; i++) {
if (fs.statSync(__dirname+fPath+"/"+files[i]).isDirectory()) {
var ign = false;
for (var j = 0; j < ignore.length; j++) {
if (ignore[j] == files[i]) {
ign = true;
break;
}
}
if (!ign) {
response.concat(getFilesSync(fPath+"/"+files[i], ignore, response));
}
} else {
response.push(fPath+"/"+files[i]);
}
}
return response;
}
console.log( getFilesSync("/test", ["test1", "test2"]) );