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



没有使用 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

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

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

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

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

path.win32.join('C:', 'b')

最新更新