2016-05-10 10 views
1

ファイルが存在する場合にのみNodeJsを使用してファイルを更新したいとします。 これを行う方法。 ノードdocsを読みましたが、fs.existsは廃止されました。 fs.writeFileを直接使用すると、存在しない場合は新しいファイルが作成されます。ファイルが存在する場合にのみ更新するノード

ファイルが存在する場合のみ更新する方法。おかげさまで

var fs = require('fs'); 
var myFile = './mono.txt'; 

try { 
    if (!fs.accessSync(myFile)) console.log('File does already exist'); 
} 
catch (exc) { 
    fs.writeFile(myFile); 
} 

答えて

5

使用fs.openとfs.write:

+0

これも私の答えになるだろう= D – robertklep

+0

これは 'fs.writeFile()'でも行うことができます。これは正解です。 –

+0

fs.writeFileで 'r +'フラグを使用しました。ありがとう – Aniket

0

はこれを試してみてください。あなたが必要とする

fs.openフラグ:

* 'r+' - Open file for reading and writing. An exception occurs if the file does not exist. 
+0

fs.existsSync(path)は推奨されていません。 – Aniket

+0

'fs.accessSync(...) 'を試してください –

+0

同期IOはしないでください。 –

1

NodeJs 4.x documentation

var fs = require('fs'); 

fs.access('/path/to/your/file', fs.F_OK, (err) => { 
    if (!err) { 
    // File exists, update your file 
    } 
}); 

fs.F_OKから - ファイルは、呼び出し元プロセスに表示されます。これは、ファイルが存在するかどうかを判断するのに便利ですが、rwx権限については何も言いません。モードが指定されていない場合のデフォルト。

フラグfs.R_OK | fs.W_OK | fs.X_OKを使用して、呼び出しプロセスのアクセス許可rwxを追加で確認することもできます。

関連する問題