2016-09-22 5 views
0

は、私はファイルが存在するかどうかをチェックするためにfs.accessを使用するNode.jsの機能を持っているにもかかわらず、既存のファイルENOENT、読み書き可能ですNode.jsのファイルシステムへのアクセスが返す

{ Error: ENOENT: no such file or directory, access 'file:///home/callcenter1/BookGenerator/config/config.ini' 
at Error (native) 
at Object.fs.accessSync (fs.js:248:11) 
at Object.fs.accessSync (ELECTRON_ASAR.js:420:27) 
at getConfig (/home/callcenter1/BookGenerator/main.js:12:12) 
at Object.<anonymous> (/home/callcenter1/BookGenerator/main.js:18:10) 
at Module._compile (module.js:541:32) 
at Object.Module._extensions..js (module.js:550:10) 
at Module.load (module.js:458:32) 
at tryModuleLoad (module.js:417:12) 
at Function.Module._load (module.js:409:3) 
errno: -2, 
    code: 'ENOENT', 
    syscall: 'access', 
    path: 'file:///home/callcenter1/BookGenerator/config/config.ini' } 

私はUbuntu端末から「Open Link」機能を使用し、geditを使ってファイルを正常に開きました。

問題点を教えてください。

編集1:

私はパスが正しいとほぼ確信している:

enter image description here

+0

他のチェックでくださいファイル。同じフォルダにありますか?私はあなたに間違った道があると思う。 – SkyQ

+1

私は奇妙 'ファイルになります:' $ {__ dirnameは} /設定/ config.ini' – SkyQ

答えて

2

スキームせず、適切なファイルシステムのパスを使用してください:あなたは

fs.accessSync(`${__dirname}/config/config.ini`, ...) 
+0

エレクトロンの 'win.loadURL(」:// $ {} __dirnameちょうどそのようにそれを使用しない/config/config.ini'.Canをfile:// $ {__dirname} /app/app.html '); 'うまく動作します。とにかくこれを試してみてください。 – Propolys

+1

'win.loadURL()'はURLをロードします。 'fs'はファイルシステムのアクションを意味します。 – robertklep

+0

'$(__ dirname)'が削除された場合、解決策は実際に問題を修正するだけなので、答えはまだ完了していません。 – Propolys

関連する問題