Ubuntu 上的节点:ENOENT 错误,但文件确实存在,我确信

问题描述 投票:0回答:1

我有一个 JS 脚本,它尝试将 CCTV 文件从一个 SMB 位置复制到另一个位置。所有文件以相同的方式创建,本质上是相同的。我正在使用 glob 获取所有文件的列表。

90% 的文件复制得很好,但随机有些文件复制失败。我正在使用

fs.readFileSync(filesArr[i]);

这会导致

注意我在顶部显示源文件位置和目标。

当我在 Ubuntu 中使用文件时,我可以看到每个文件并打开它!

我不明白为什么它大部分时间都有效。

node.js ubuntu smb
1个回答
0
投票

我认为nodejs fs模块openSync方法ENOENT的错误描述非常有表现力。一个简单的搜索和另一个 StackOverflow 答案(错误:ENOENT:没有这样的文件或目录,打开。所有的解决方案都不适合我)引导我找到原因,你的文件名字符串没有以正确的方式编码,我认为你应该转义特殊字符和空格字符。

错误中的文件名为

Failed Error: ENOENT: no such file or directory, open '/run/user/1000/gvfs/smb-share:server=192.168.150.2,share=qvrprorecording/File/Standard_Format/Ch001_Camera 001/Event002/2024-02-08/17/20240208-172457-172501.mp4'
,并且
Camera
001
之间有一个空格,这可能会导致错误。

© www.soinside.com 2019 - 2024. All rights reserved.