2016-08-03 8 views
1

ファイルを書き込む(必要に応じてディレクトリ構造を作成する)ことはかなり簡単です。マックOS X上でfs.writeFileSync WindowsでENOENTエラーが発生する

writeFileSync(fileName, output, { flag: "w" }); 

予想通り、これは動作します... Windowsでは、しかし、私はENOENTエラーを取得:

fs.js:549 
return binding.open(pathModule._makeLong(path), stringToFlags(flags), mode); 

Error: ENOENT: no such file or directory, open 'C:\mydir\myfile.json' 
at Error (native) 
at Object.fs.openSync (fs.js:549:18) 
at Object.fs.writeFileSync (fs.js:1156:15) 
at ... 
at FSReqWrap.oncomplete (fs.js:82:15) 

を私はB/Cファイルパスここ損失で本当によ記載されているものは正しいものであることさらに、これはMac OS X上で私が望むのと全く同じように機能します。

ご協力いただければ幸いです。 ありがとう!

+3

Windowsのパス区切り文字は異なります。あなたのパスは、( 'パス')モジュールを使用してビルドインチこのような何かvar fileName = path.join( "/ logs"、 "yourfilename"); –

+0

ありがとう@MykolaBorysyuk - それは...私はパスを手動で 'myDumbArrayOfPathString.join( '/')'で骨折した間違いを犯していました...一度 'path.join(...) 'すべてが順調です。クイックヘルプありがとう! – christophersw

答えて

2

私は愚か代わりにこのパスを使用していないことで

path.join(...); // This is much better! Use this... 

非常に便利な、私はWindowsで異なるパスセパレータを占めていなかったの

mySimpleArrayOfStrings.join('/'); // not the way to build a path 

を使用していました。

@MykolaBorysyukに大変感謝します!

関連する問題