通过UNC路径在节点中读取/写入文件

afr*_*and 9 unc fs node.js

在本地计算机上reading/writing遇到UNC路径问题nodeJs.有一次fs从我的机器读取/写入到UNC路径就好了,但现在它似乎无法读/写它.

UNC路径: \\[machine name]\folder1\folder2\file.csv

我一段时间后升级到节点版本12,并认为可能存在网络路径错误,但没有看到任何人在线受到影响.然后我用来nvmw加载旧版本的节点,但仍然没有.

我想知道是不是因为我没有加入同一个域,但是,这不是以前的问题.我可以ping这个盒子,在Windows资源管理器中访问,远程访问.

我尝试运行我的应用程序作为我的用户,作为管理员,在凭证管理器中为网络管理员添加了一个Windows凭据.

试图改变使用许可标志r,r+,a,a+0666 ...

路径尝试

  • \\[machine name]\
  • \\?\[machine name]\
  • \\?\UNC\[machine name]\

写错误

{ 
  [Error: UNKNOWN, mkdir '\\[machine name]\Storage\CSV\Example.csv']
  errno: -4094,
  code: 'UNKNOWN',
  path: '\\[machine name]\Storage\CSV\Example.csv' 
}
Run Code Online (Sandbox Code Playgroud)

读错误

{ 
  [Error: UNKNOWN, open '\\[machine name]\Storage\CSV\Example.csv']
  errno: -4094,
  code: 'UNKNOWN',
  path: '\\[machine name]\Storage\CSV\Example.csv' 
}
Run Code Online (Sandbox Code Playgroud)

我已经浏览了很多实际的fs代码,它似乎最终生成了适当的路径,但似乎没有很好的窗口用于访问UNC路径.

我希望有人可以给我一些要检查的事项或可能的原因.

小智 4

正如您在节点中所知,反斜杠是转义字符,因此您需要将使用的反斜杠数量加倍。为了:

\\machine name\folder1\folder2\filename.ext
Run Code Online (Sandbox Code Playgroud)

尝试:

\\\\machine name\\folder1\\folder2\\filename.ext
Run Code Online (Sandbox Code Playgroud)