2017-05-25 66 views
0

沒有使用fs.mkdirSync函數創建目錄 - 這裏有什麼不對?!node.js:路徑不是使用fs lib創建的

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 
+0

你能提供'path.sep'的結果嗎?奇怪的是,'join'在Windows上返回正斜槓的路徑。它是Windows嗎? –

回答

0

它似乎你的主機操作系統是Windows,但是N ode.js認爲它運行在某些posix兼容的操作系統上,可能是由於通過Docker,Cygwin環境或新的Windows Linux環境調用的。

對於Cygwin的和Windows的Linux環境中,C:\硬盤都爲/c文件夾訪問:

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

如果不工作,你可能會試圖迫使Node.js的通過執行治療路徑win32路徑

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