我是 JavaScript 新手,我需要检查给定数组中的任何文件夹是否为空。
这是一项检查,是我正在解决的问题的一部分,但我找不到解决此问题的解决方案。请帮忙。
ex input array = ['t1' , 't1/t2' , 't1/t2/1.txt', 'l1' , 'l1/l2' , 'l1/l2/1.txt'] for this input the fn should return a true
ex2 : ['t1' , 't1/t2' , 't1/t2/1.txt', 'l1' , 'l1/l2' ] this should be false as the the l2 folder is empty.
要在 JavaScript 中检查文件夹是否为空,您可以递归处理文件夹路径数组并验证文件夹中是否有任何文件。您可以使用 Node.js fs 模块与文件系统交互。这是执行此操作的函数:
const fs = require('fs');
const path = require('path');
function isFolderEmpty(folderPath) {
try {
const files = fs.readdirSync(folderPath);
return files.length === 0;
} catch (error) {
return false;
}
}
function isAnyFolderEmpty(folderPaths) {
for (const folderPath of folderPaths) {
const fullPath = path.resolve(__dirname, folderPath);
if (isFolderEmpty(fullPath)) {
return true;
}
}
return false;
}
const folders = ['t1', 't1/t2', 't1/t2/1.txt', 'l1', 'l1/l2', 'l1/l2/1.txt'];
const result = isAnyFolderEmpty(folders);
console.log(result);
const folders2 = ['t1', 't1/t2', 't1/t2/1.txt', 'l1', 'l1/l2'];
const result2 = isAnyFolderEmpty(folders2);
console.log(result2);
isFolderEmpty(folderPath) 通过尝试使用 fs.readdirSync 读取文件夹内容来检查文件夹是否为空。如果发生错误,则会捕获该错误,并且该函数返回 false。
isAnyFolderEmpty(folderPaths) 迭代文件夹路径数组,使用 path.resolve 将它们解析为绝对路径,并使用 isFolderEmpty 检查其中是否有任何为空。如果发现任意文件夹为空,则返回true,表示数组中至少有一个文件夹为空。
确保根据特定用例的需要调整文件夹路径。