如何将目录文件名存储在字符串数组中



我正试图从/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我不知道是什么(。当你映射它时,它会返回一个数组,所以我认为它也应该适用于你的情况。

最新更新