use*_*789 7 javascript file-system-access-api
我一直在关注这篇文章,以允许用户(半)自动将客户端生成的 XML 文件保存到特定的本地文件夹。第三方程序正在监视此文件夹,并将处理其内容并将内容输出到另一个文件中。
问题是,从创建文件到使用 close() 方法将内容实际写入文件大约需要 250 毫秒。
有时,第三方程序会检测到文件已创建,并尝试在写入之前读取其内容。该程序不支持在尝试读取文件内容之前添加延迟。
我已经考虑过将文件写入临时位置并在关闭后将其移动,但这似乎无法通过此 API 实现。重命名文件也是如此。
使用普通对话框创建/下载文件可能会起作用,但这需要手动步骤,而使用文件系统访问 API 可以避免这些步骤。
另一个解决方案是安装一个本地程序,该程序可以在关闭时将文件从临时文件夹移动到程序监视文件夹,但我宁愿避免在客户端上安装软件。
还有其他方法可以避免这个问题吗?
谢谢
现在有一种重命名和移动文件的方法(目前在 Chrome 中在实验性 Web 平台功能标志后面实现):
// Get references to a file and a directory.
const [file] = await showOpenFilePicker();
const directory = await showDirectoryPicker();
// Rename the file.
await file.move('new_name');
// Move the file to a new directory.
await file.move(directory);
// Move the file to a new directory and rename it.
await file.move(directory, 'newer_name');
Run Code Online (Sandbox Code Playgroud)
您可以通过订阅此 PR来跟踪规范工作。
请注意,令人困惑的是,未标记的 Chrome 确实在所有文件句柄(不仅仅是 OPFS 文件句柄)上都有该方法,但使用它会引发“用户中止请求”错误。.move()