如果像我一样,您想从自己机器上的本地文件夹中加载图像,那么有一种简单的方法可以使用非常短的 Windows 批处理文件来完成。这使用使用 >(覆盖文件)和 >>(附加到文件)将任何命令的输出发送到文件的能力。
潜在地,您可以将文件名列表输出到纯文本文件,如下所示:
dir /B > filenames.txt
但是,读取文本文件需要更多的麻烦,所以我输出了一个 javascript 文件,然后可以将其加载到您的文件中以创建一个包含所有文件名的全局变量。
echo var g_FOLDER_CONTENTS = mlString(function() { /*! > folder_contents.js
dir /B images >> folder_contents.js
echo */}); >> folder_contents.js
带有注释的奇怪函数的原因是为了绕过 Javascript 中对多行字符串的限制。dir 命令的输出无法格式化为写入正确的字符串,所以我在这里找到了解决方法。
function mlString(f) {
return f.toString().
replace(/^[^\/]+\/\*!?/, '').
replace(/\*\/[^\/]+$/, '');
}
在生成的 javascript 文件运行之前将其添加到您的主代码中,然后您将拥有一个名为 g_FOLDER_CONTENTS 的全局变量,它是一个包含 dir 命令输出的字符串。然后可以对其进行标记,您将拥有一个文件名列表,您可以使用它来做您喜欢的事情。
var filenames = g_FOLDER_CONTENTS.match(/\S+/g);
这是一个将所有内容放在一起的示例:image_loader.zip
在示例中,run.bat生成 Javascript 文件并打开 index.html,因此您无需自己打开 index.html。
注意:.bat 是 Windows 中的一种可执行类型,因此如果您是从像这样的一些随机 Internet 链接下载,请在运行之前在文本编辑器中打开它们。
如果您运行的是 Linux 或 OSX,您可能可以执行与批处理文件类似的操作,并生成格式正确的 javascript 字符串,而无需任何 mlString faff。