gpt4 book ai didi

javascript - node.js 检查将新文件复制到磁盘是否已完成

转载 作者:太空宇宙 更新时间:2023-11-04 02:48:08 24 4
gpt4 key购买 nike

我正在尝试使用 Electron/Node.js 编写一个联机射击应用程序。

相机和计算机之间的通信由相机附带的软件管理。新的图片直接复制到我的本地硬盘上。之后我的应用程序应该尽快显示新图片。

我为新照片到达的目录设置了一个 chokidar 观察程序。不幸的是

awaitWriteFinish: {stabilityThreshold: 500, pollInterval: 50}

chokidar 的选项作用非常缓慢,有时会过早触发添加事件。

我的想法是在观察者(没有awaitWriteFinish选项)触发事件后编写我自己的轮询机制。

我尝试使用 fs.stats 进行轮询,但 fs.stats 无法识别当前文件大小,而是识别总文件大小。

有没有一种简单的node.js/javascript/jquery方法来检测新文件是否完全写入磁盘?

任何帮助表示赞赏。

最佳答案

我相信你可以观察目录的变化。也许首先扫描它以获得文件列表。例如,如果您使用的是 Windows 并且文件保存在 C:\temp

const fs = require('fs')
const saveDir = 'C\\temp'

let currentFiles = [];

// Read all cuurent files in directory
fs.readdirSync(saveDir, (error, files) =>
{
currentFiles = files;
});


fs.watch(saveDir, (eventType, fileName) =>
{
if (currentFiles.includes(fileName))
{
return;
}

// Handle rename event

// Handle change event

});

更多信息在这里:

https://nodejs.org/api/fs.html#fs_fs_watch_filename_options_listener

关于javascript - node.js 检查将新文件复制到磁盘是否已完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52384735/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com