2017-05-25 26 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'の結果を提供できますか? Windows上で 'join'がパスをスラッシュで返すのは不思議です。それはWindowsですか? –

答えて

0

それあなたのホストOSはWindowsと思われますが、N ode.jsは、おそらくDocker、Cygwin環境または新しいWindows Linux環境から起動されているため、POSIX準拠のOSで動作していると考えています。 CygwinとWindowsのLinuxの環境では

C:\ドライブは/cフォルダとしてアクセスできます。問題が解決しない場合は、あなたが実行してwin32パスとしてパスを治療するためのNode.jsのを強制しようとするかもしれ

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

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