您可以在没有 html 文件输入的情况下创建 Javascript 文件列表或文件对象吗

Can you create a Javascript File List or File object without html file input

我正在创建一个离线 javascript 应用程序,它使用 sql.js 加载 sqlite 数据库,添加一些过滤器并查询数据并显示各种基于 d3 的图表。但是我的用户不想被数据库的东西和数据库文件所困扰。我想在页面加载时加载文件。

<input id="inpLoadDB" type="file" onchange="loadDB()">

当我查询该元素时,它 returns 一个 FileList 对象,我可以从中获取选定的文件。如何在不包含 HTML 元素的情况下构建 FileList(或仅文件对象)。类似于:

var fl=new FileList();
fl.readDir("./data/");

从浏览器访问文件受到限制。如果您从浏览器执行它,则需要用户交互,例如上传文件按钮。即使 HTML5 的文件访问 api 也需要用户执行某些操作才能获取文件 https://www.html5rocks.com/it/features/file_access

查看 Whosebug 上的其他答案,其中包含 2016 年的更新

如果您编写 Node.js 应用程序并使用文件 I/O 模块

,则可以使用 Javascript 访问文件系统编程
var fs = require("fs");

// Asynchronous read
fs.readFile('input.txt', function (err, data) {
   if (err) {
      return console.error(err);
   }
   console.log("Asynchronous read: " + data.toString());
});

// Synchronous read
var data = fs.readFileSync('input.txt');
console.log("Synchronous read: " + data.toString());

console.log("Program Ended");