通过 UNC 路径使用 fs 读取/写入节点中的文件
Posted
技术标签:
【中文标题】通过 UNC 路径使用 fs 读取/写入节点中的文件【英文标题】:Read/Writing files in node with fs via UNC path 【发布时间】:2015-06-07 12:25:03 【问题描述】:在我的本地计算机上遇到reading/writing
到带有nodeJs
的UNC 路径的问题。在某一时刻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'
读取错误
[Error: UNKNOWN, open '\\[machine name]\Storage\CSV\Example.csv']
errno: -4094,
code: 'UNKNOWN',
path: '\\[machine name]\Storage\CSV\Example.csv'
我已经浏览了很多实际的 fs 代码,它似乎最终会生成适当的路径,但似乎与用于访问 UNC 路径的窗口不兼容。
我希望有人能给我一些要检查的事情或可能的原因。
【问题讨论】:
可能相关:github.com/joyent/node/issues/8821#issuecomment-77834980 不确定。我最终删除了虚拟网络连接......并完全重置了我的网络适配器,突然间它被备份并写入文件。我不知道这些是否修复了它。尝试弄清楚这是一件糟糕的事情 我也遇到了这个问题,但我可以使用它已经映射到的驱动器(尽管添加一个并不难) 你的意思是你在节点0.12
上?试试 7... 现在可以修复了吗?
【参考方案1】:
正如您在 node 中所知道的,反斜杠是转义字符,因此您需要将使用的反斜杠数量加倍。对于:
\\machine name\folder1\folder2\filename.ext
尝试:
\\\\machine name\\folder1\\folder2\\filename.ext
【讨论】:
答案是什么?在问题中,他已经在使用双反斜杠了! 对不起,没有看到编辑模式下的答案与显示模式不同。我在编辑模式下修改了答案以正确显示以上是关于通过 UNC 路径使用 fs 读取/写入节点中的文件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Java 中检查文件大小而不从 UNC 路径读取文件?