Node.js符号链接在Windows上被破坏了吗?

时间:2017-03-27 02:19:44

标签: node.js windows junction

首先,这是代码:

const FS = require('fs');
const OS = require('os');
const symlinkType = OS.platform() === 'win32' ? 'junction' : 'file';

FS.symlink(target, path, symlinkType, err => {
    if(err) {
        console.error(`Failed to create ${symlinkType} ${path} -> ${target}`);
    } else {
        console.log(`Created ${symlinkType} ${path} -> ${target}`);
    }
})

这会吐出一堆这样的消息:

Created junction C:\Users\Mark\*snip*\data\Pacific\Midway.txt -> C:\Users\Mark\*snip*\data\Pacific\Pago_Pago.txt
Created junction C:\Users\Mark\*snip*\data\Pacific\Samoa.txt -> C:\Users\Mark\*snip*\data\Pacific\Pago_Pago.txt
Created junction C:\Users\Mark\*snip*\data\Pacific\Ponape.txt -> C:\Users\Mark\*snip*\data\Pacific\Pohnpei.txt

所以看起来它正在发挥作用。我可以在资源管理器中看到联结/快捷方式:

但他们都被打破了。即,双击它们会给我一个错误信息

  

Cuba.txt无法访问。
  文件名,目录名或卷标语法不正确。

为什么?如何在Windows上的Node.js中创建符号链接,使文件正常工作(即其他程序可以读取它们)。

1 个答案:

答案 0 :(得分:3)

我记得NTFS交接点就像目录,而不是单个文件。

请参阅https://msdn.microsoft.com/en-us/library/windows/desktop/aa365006(v=vs.85).aspx