2013-09-05 1 views
4

내 Windows 시스템에서 nodejs fs.watch로 폴더를 보는 데 어려움을 겪고 있습니다. 감시 폴더가 삭제되면 예외가 발생합니다.감시 된 폴더가 삭제 될 때 노드 시계 EPERM

 


    fs.watch('somedir', function (event, filename) { 
     console.log('event is: ' + event); 
     if (filename) { 
      console.log('filename provided: ' + filename); 
     } else { 
      console.log('filename not provided'); 
     } 
    }); 

 

somedir을 삭제하면 콜백이 아닌 예외가 발생합니다.

+0

EPERM은 작동이 허용되지 않음을 의미합니다. 디렉토리 권한을 확인하십시오. – vinayr

+0

사용 권한이 모두 설정됩니다. 이것은 이전에 폴더를 삭제 한 후에 만 ​​발생합니다. – sbspk

+0

폴더의 삭제를 모니터하고 싶다면 감시중인 폴더를 삭제해야한다고 생각하지 마십시오. 부모님이 보시길 바랍니다. –

답변

0

fs.watchfs.FSWatcher 개체를 반환하므로 오류가 발생할 수 있습니다.

방금 ​​테스트 해본 결과 폴더를 삭제할 때 오류 이벤트가 발생한 것으로 보입니다. 처리 할 코드는 다음과 같습니다.

var fs = require('fs'); 

var path = "C:\\somedir"; 

var watcher = fs.watch(path, function (event, filename) { 
    console.log('event is: ' + event); 
    if (filename) { 
    console.log('filename provided: ' + filename); 
    } else { 
    console.log('filename not provided'); 
    } 
}); 


watcher.on('error', function(err) { 
    if (!fs.existsSync(path)) { 
    console.log('folder deleted'); 
    } 
}); 
관련 문제