我正试图从/assets/audio文件夹中获取所有音频文件的名称,以动态创建声音按钮。现在我有一个数组,我在其中手动键入了所有文件的名称。这个想法是在向项目中添加新文件时自动获取名称,而不是手动将它们添加到数组中。
我已经找了很长一段时间了,但我还没有找到适合我情况的解决方案。我正在尝试开发一个简单的Android应用程序,没有服务器,没有后端,它是一个响板。但我的问题的很多解决方案都表明,我需要使用后端来实现这一点。更具体地说,使用fs
,如下所示:
const testFolder = './tests/';
const fs = require('fs');
fs.readdirSync(testFolder).forEach(file => {
console.log(file);
});
但我得到了这个错误,我还没有找到解决方案:
[ng] Error from chokidar (C:): Error: EBUSY: resource busy or locked, lstat 'C:DumpStack.log.tmp'
有没有一种简单的方法可以读取目录文件并将名称存储在阵列中?
我很抱歉,我还在学习,有很多事情我不知道如何正确地寻找。
您可能可以使用try/catch
绕过锁定的(或其他不可访问的(文件
fs.readdirSync(testFolder).forEach(file => {
try {
console.log(file);
} catch (e) {
console.log('cannot read file', e);
}
});
很抱歉延迟了响应,但您可以使用这个小函数来完成
function importAll(r) {
return r.keys().map(r);
}
const testFolder = importAll(
require.context("./tests/", false, /*/)
);
我在一个react项目中将其与webpack一起使用,所以如果没有预先绑定数据的webpack,我不知道它是如何工作的,但从require
返回的数据看起来不像数组(tbh我不知道是什么(。当你映射它时,它会返回一个数组,所以我认为它也应该适用于你的情况。