1

我一直在关注这篇文章,以允许用户(半)自动将客户端生成的 XML 文件保存到特定的本地文件夹。第三方程序正在监视此文件夹并将处理其内容并在另一个文件中输出内容。

问题是从创建文件到使用 close() 方法将内容实际写入文件需要大约 250 毫秒。

有时第三方程序会检测到文件已创建,并在写入之前尝试读取其内容。该程序不支持在尝试读取文件内容之前添加延迟。

我已经考虑将文件写入临时位置并在关闭后将其移动,但这似乎不适用于此 API。重命名文件也是如此。

使用普通对话框创建/下载文件可能会起作用,但这需要使用文件系统访问 API 可以避免的手动步骤。

另一种解决方案是安装一个本地程序,该程序可以在关闭时将文件从临时文件夹移动到程序监视文件夹,但我宁愿避免在客户端上安装软件。

有没有其他方法可以避免这个问题?

谢谢

4

1 回答 1

1

现在有一种重命名和移动文件的方法(目前在 Chrome 96 中实现,位于实验性网络平台功能标志后面):

// Get references to a file and a directory.
const [file] = await showOpenFilePicker();
const directory = await showDirectoryPicker();

// Rename the file.
await file.rename('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');

您可以通过订阅此 PR来遵循规范工作。

于 2021-11-18T08:19:27.250 回答