如何知道文件是否下载完成?

时间:2019-08-05 20:58:08

标签: javascript download electron

我正在使用电子开发用于Mac和Windows的应用程序,该应用程序监视从另一个应用程序下载的文件所在的文件夹,我想检查文件是否已完成下载,然后再将其移动到其他位置,我不知道是否应该我会定期检查文件大小,或者还有另一种方法来确定文件是否确实使用javascript完成下载。

1 个答案:

答案 0 :(得分:1)

您可以使用fs.watch@ronomon/opened来解决您的任务。参见:Check if a file is open in another process

我写了一个简单的脚本,在Windows 10 mashine上运行良好。下载结束后,我将一些文件下载到该文件夹​​中,并显示了正确的通知。

const fs = require ('fs');
const path = require ("path")
const opened = require('@ronomon/opened');

const base_path = "."
fs.watch (base_path, {encoding: "ascii", recursive: true}, (eventType, filename)=> {

    var file_path = path.join (base_path, filename);
    opened.files ([file_path], (error, hashtable) => {
        try {
            if (!hashtable[file_path]) {
                console.log ("file is closed and can be further processed", file_path)
            } else {
                console.log ("file is still opend by any other process...", file_path)
            }
        } catch (e) {
            console.error ("error: ", e);
        }
    })
});