我看了一些叙述,提到在Chrome 83更新以后,可以使用某个API直接读写本地文件,但我没找到直接能向指定目录写入指定文件名的方法。所有需要写入的内容存在一个数组里,每一个元素写到一行就可以,输出路径为当前所用的html的路径(这个html只进行本地运算,不是在线连接的网页),文件名TempFile
(无文件扩展名)(这个目录已经存在)。
Chrome 83之后引入的API是File System Access API,可以让Web应用程序以受控方式访问本地文件系统。使用该API,可以通过用户选择文件保存对话框或使用默认的下载目录来保存文件,但无法直接指定保存的路径和文件名。
对于你的需求,你可以使用Blob对象来创建一个文件并写入内容,然后使用Download API将其下载到本地。以下是示例代码:
// 将需要写入的内容存入数组
const content = ["line 1", "line 2", "line 3"];
// 将数组内容拼接为字符串
const text = content.join('\n');
// 创建Blob对象
const blob = new Blob([text], {type: 'text/plain'});
// 使用Download API下载文件
const a = document.createElement('a');
a.href = URL.createObjectURL(blob);
a.download = 'TempFile.txt'; // 指定文件名
a.style.display = 'none';
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
这将创建一个名为TempFile.txt的文本文件,并将其下载到用户默认的下载目录中。如果需要将文件保存到其他目录,可以使用webkitRelativePath属性来指定路径,但需要手动选择目录并授权访问。