我有一个Node.js程序,它定期循环遍历目录中的视频文件。如果添加或删除了文件,程序将更新数据库以反映此更改。添加文件时,FFmpeg用于生成缩略图。
当我尝试在当前正被复制到目录的文件上运行FFmpeg时,我遇到了问题。由于文件不完整,FFmpeg无法生成缩略图。如果我知道文件何时被复制,我可以忽略它,并且下次扫描目录时它会被拾取。
如何确定当前是否正在复制文件,或者如何循环忽略当前正在复制文件的目录?
答案 0 :(得分:1)
假设您有两个进程,一个用于写入文件,另一个用于对写入的文件进行操作:
使用此策略,缩略图进程会在目标目录中查看更改,现在可以保证只包含完整文件。
请参阅fs.watch,以便您观看"一个变更目录。
答案 1 :(得分:0)
找到文件后,取当前大小(以字节为单位),然后在1秒后检查文件,并检查文件大小是否仍然相同。如果不是,则表示当前正在写入文件。