node.js:未使用fs lib创建路径

时间:2017-05-25 11:10:24

标签: javascript node.js

使用fs.mkdirSync函数没有创建目录 - 这里有什么问题!?

var fs = require('fs')
const path = require('path');
fs.mkdirSync(path.join("c:","b"))
console.log(fs.existsSync(path.join("c:","b")))

输出是:

/temp/file.js:3
fs.mkdirSync(path.join("c:","b"))
   ^

Error: ENOENT: no such file or directory, mkdir 'c:/b'
    at Object.<anonymous> (/temp/file.js:3:4)
    at Module._compile (module.js:571:32)
    at Object.Module._extensions..js (module.js:580:10)
    at Module.load (module.js:488:32)
    at tryModuleLoad (module.js:447:12)
    at Function.Module._load (module.js:439:3)
    at Module.runMain (module.js:605:10)
    at run (bootstrap_node.js:418:7)
    at startup (bootstrap_node.js:139:9)
    at bootstrap_node.js:533:3

然后我在c:\中创建了一个目录x并执行了以下

var fs = require('fs')
const path = require('path');
console.log(fs.existsSync(path.join("c:","x")))

但又得到了:

false

1 个答案:

答案 0 :(得分:0)

看起来您的主机操作系统是Windows,但Node.js认为它在某些符合posix的操作系统上运行,可能是由于通过Docker,Cygwin环境或新的Windows Linux环境调用。

对于Cygwin和Windows Linux环境,C:\驱动器可以作为/c文件夹访问:

path.join('/c', 'b')

如果这不起作用,您可以尝试强制Node.js通过执行

将路径视为win32路径
path.win32.join('C:', 'b')