2017-02-06 3 views
0

fs.rename()で1つのことを理解できません。なぜこのコードが常にエラーをスローしますか?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

ディレクトリ内のwhatsを前後でチェックしようとすると、 'fs.readdirSync()'でこれを簡単に行うことができます。 – pspi

+0

ファイル名だけでなく、ファイル名をフルパスで入力してください。 –

+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) 

:代わりに

if (err instanceof Error) 

のところで

、あなたが使用することをお勧めしますいくつかのモジュールを使用している間は真です)。

+0

ありがとうございました!私はコードを修正しました、私は既に 'var fs = require( 'fs');'を使っています。私は忘れてしまった。現在のところ、このコードは完全に動作するので、私はこのエラーを理解できません。 – Gecko

関連する問題