node glob 根据指定目录,获取目录和子目录中所有文件

在 Node.js 中,glob 是一个强大的库,它使用模式匹配来查找与指定模式匹配的文件路径。你可以使用它来根据一个目录获取该目录及其所有子目录中的所有文件。

const glob = require('glob');  
// 定义模式,这里查找所有文件(不包括目录)  
const pattern = '/path/to/directory/**/*';  
// 使用 glob 查找文件  
glob(pattern, { nodir: true }, (err, files) => {  
    if (err) {  
        console.error('An error occurred:', err);  
        return;  
    }  
    // files 数组包含所有匹配的文件路径  
    console.log(files);  
});

在上面的代码中,pattern 定义了要匹配的文件模式。/**/* 是一个 glob 通配符,表示匹配任意数量的目录(包括零个)和任意文件。{ nodir: true } 选项告诉 glob 只返回文件路径,不返回目录路径。

如果你还想获取目录路径,只需移除{ nodir: true } 选项即可:

glob(pattern, (err, files) => {  
    if (err) {  
        console.error('An error occurred:', err);  
        return;  
    }  
      
    // files 数组现在包含文件和目录路径  
    console.log(files);  
});

请注意,glob 默认是异步的,它接受一个回调函数来处理找到的文件路径。如果你需要同步版本,glob 也提供了一个 glob.sync 方法:

const glob = require('glob');  
  
// 定义模式  
const pattern = '/path/to/directory/**/*';  
  
try {  
    // 使用 glob.sync 同步查找文件  
    const files = glob.sync(pattern, { nodir: true });  
      
    // files 数组包含所有匹配的文件路径  
    console.log(files);  
} catch (error) {  
    console.error('An error occurred:', error);  
}

使用 glob.sync 时,它会直接返回匹配的文件路径数组,或者在出错时抛出异常。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值