2013-06-28 3 views
18

Je souhaite supprimer le contenu d'un simple fichier texte avec node.js. Ou remplacez le fichier par un nouveau/vide.Node.js/Supprimer le contenu du fichier

Comment est-ce que je peux réaliser ceci dans le noeud?

+3

Avez-vous regardé ici? http://nodejs.org/api/fs.html – Dan455

+3

downvoted pour manque de recherche –

+1

N'est-ce pas le comportement par défaut de fs.writeFile, si vous ne fournissez pas de drapeaux ??? Il est en fait plus difficile à ajouter à ajouter à un fichier ... – ChrisCM

Répondre

40

Vous recherchez fs.truncate ou fs.writeFile

un des problèmes suivants fonctionnera:

var fs = require('fs') 
fs.truncate('/path/to/file', 0, function(){console.log('done')}) 

ou

var fs = require('fs') 
fs.writeFile('/path/to/file', '', function(){console.log('done')}) 

Il y a aussi synchronous versions de both functions que vous ne devriez pas utiliser.

+2

+1 pour ne pas enlever le fichier et écrire dans le même fichier! – ChrisCM

+0

Pouvez-vous expliquer pourquoi les versions synchrones ne sont pas souhaitables? –

+1

Bien sûr! La principale raison est que le nœud est un thread unique (pour la plupart), donc si vous faites des opérations synchrones onéreuses, vous bloquez l'exécution pour tout votre processus. – Andbdrew

0

est l'appel dont vous avez besoin pour supprimer un fichier. Pour le remplacer par des contenus différents, il suffit de l'écraser avec fs.writeFile.

+2

A partir de la documentation de noeud pour fs.writeFile: écrit de manière asynchrone des données dans un fichier, en remplaçant le fichier s'il existe déjà. Votre étape de dissociation est inutile. – ChrisCM

+0

@ChrisCM Je réponds aux deux parties de la question. –