在 javascript 中检查文件夹是否为空。文件扩展名可以是任何东西

问题描述 投票:0回答:1

我是 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 arrays find
1个回答
0
投票

要在 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,表示数组中至少有一个文件夹为空。

确保根据特定用例的需要调整文件夹路径。

© www.soinside.com 2019 - 2024. All rights reserved.