2012-05-25 53 views
7

私はNode.jsを使い慣れていません。次のコードで何が問題なのかを解明しようとしています。Windows上のNode.jsとファイルシステム - EBUSYエラー

var fs = require('fs'); 
var dir = "C:\\"; 
var files = fs.readdirSync(dir); 
for (var i = 0; i < files.length; i++) { 
    var name = fs.statSync(dir + files[i]).name; 
} 

このコードを実行すると、私はエラーを取得する:

Error: EBUSY, resource busy or locked 'C:\hiberfil.sys' 
    at Object.statSync (fs.js:424:18) 
    at Object.<anonymous> (S:\start.js:7:19) 
    at Module._compile (module.js:446:26) 
    at Object..js (module.js:464:10) 
    at Module.load (module.js:353:31) 
    at Function._load (module.js:311:12) 
    at Array.0 (module.js:484:10) 
    at EventEmitter._tickCallback (node.js:190:38) 
+0

初めてお試しください https://stackoverflow.com/questions/36566236/npm-install-error-code-ebusy-errono-4082/45757541#45757541 –

答えて

11

hiberfil.sysファイルはディスクにハイバネーションデータを保持しているシステムファイルである、あなたはそれは超機密だ、通常の権利を経由して、それを読み取ることができませんそれはディスク上のすべてのメモリ情報を保持するからです。

+7

+1 - 「スーパー機密」の場合。 – BuddyJoe

+1

ちょうど参考のためにここにノートを投げる: try/catchを使用してこのエラーメッセージで私の問題を解決しました。 'try {var name = fs.statSync(path); } ' - 何らかの理由でファイルを読み込むことができず、移動した場合は無視します。ノードはJSでのエラー処理の価値を理解するのに本当に役立っています。 – Adrian

関連する問題