2017-02-06 4 views
0

fs.rename()과 관련된 한 가지를 이해할 수 없으므로이 코드가 항상 오류를 발생시키는 이유는 무엇입니까?NodeJS fs.rename이 항상 오류를 던졌습니다

이 파일은 제대로 이름을 변경하지만 정확한 코드를 실행할 때마다이 오류 Error: ENOENT: no such file or directory, rename '/path/to/file/example.log' -> '/path/to/file/example_1.log'

var fs = require('fs'); 
var mv = fs.rename('example.log', 'example_1.log', function(err) { 

    if(err instanceof Error) 
    throw err; 

}); 
+0

어쩌면'fs.readdirSync()'로이 디렉토리의 앞뒤에있는 whats를 검사해볼 수 있습니다. – pspi

+0

그냥 파일 이름 대신, reanme하려는 파일 이름으로 전체 경로를 제공하십시오. –

+0

이 코드는 단순화되어 있으며 파일의 전체 경로를 제공합니다. 이전 파일은 있지만 새 파일은 존재하지 않습니다. – Gecko

답변

0

을 가지고있다 :

var fs = require('fs'); 
var mv = fs.rename('example.log', 'example_1.log', function(err) { 

    if(err instanceof Error) 
    throw err; 

}); 

(유일한 차이점이 추가됩니다 fs 필요한 참조).

그렇다면 현재 디렉토리에 파일이 없을 때 오류가 발생합니다.

그러나 example.log를 만들고 프로그램을 실행하면 오류가 발생하지 않고 파일의 이름이 바뀝니다.

물론 원래 이름의 파일이 없기 때문에 다음에 오류가 다시 나타납니다.

당신에게 적합하지 않습니까? 그런데

, 대신

if (err instanceof Error) 
사용할 수 있습니다

:

if (err) 

그냥 오류가 정의되어 여전히 오류의 인스턴스가 아니라 경우에 (이 될 수 있습니다 일부 모듈을 사용하는 동안 true).

+0

답변 해 주셔서 감사합니다. 코드를 수정했는데 이미'var fs = require ('fs'); '를 사용합니다. 나는 잊어 버렸다. 현재 코드가 완벽하게 작동하므로이 오류를 이해할 수 없습니다. – Gecko