Comment supprimer un fichier avec node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Je ne vois pas de commande de suppression?
Comment supprimer un fichier avec node.js?
http://nodejs.org/api/fs.html#fs_fs_rename_oldpath_newpath_callback
Je ne vois pas de commande de suppression?
Réponses:
rmFile
alias
rm
alias s'ils ont des rmdir
méthodes
fs.unlinkSync()
Vous pouvez appeler fs.unlink(path, callback)
pour la dissociation asynchrone (2) ou fs.unlinkSync(path)
pour la dissociation synchrone (2).
Oùpath
trouve le chemin de fichier que vous souhaitez supprimer.
Par exemple, nous voulons supprimer le discovery.docx
fichier du c:/book
répertoire. Donc, mon chemin de fichier est c:/book/discovery.docx
. Donc, le code pour supprimer ce fichier sera,
var fs = require('fs');
var filePath = 'c:/book/discovery.docx';
fs.unlinkSync(filePath);
Si vous souhaitez vérifier le fichier avant de supprimer s'il existe ou non. Utilisez donc fs.stat ou fs.statSync ( synchrone ) au lieu de fs.exists
. Parce que selon la dernière documentation node.js , fs.exists
désormais obsolète .
Par exemple:-
fs.stat('./server/upload/my.csv', function (err, stats) {
console.log(stats);//here we got all information of file in stats variable
if (err) {
return console.error(err);
}
fs.unlink('./server/upload/my.csv',function(err){
if(err) return console.log(err);
console.log('file deleted successfully');
});
});
fs.unlink
et si le fichier n'existe pas, vous aurez une ENOENT
erreur dans le rappel. Pas besoin de vérifier avant d'essayer de dissocier.
fs.unlink
s'exécute lorsque le fichier n'existe pas, donc mon avis est que vérifier le fichier avant de le supprimer.
unlink
rappel. Si cette erreur s'est produite, le fichier n'existait pas. Regardez la réponse de Searene par exemple.
Je ne pense pas que vous ayez à vérifier si le fichier existe ou non, fs.unlink
le vérifiera pour vous.
fs.unlink('fileToBeRemoved', function(err) {
if(err && err.code == 'ENOENT') {
// file doens't exist
console.info("File doesn't exist, won't remove it.");
} else if (err) {
// other errors, e.g. maybe we don't have enough permission
console.error("Error occurred while trying to remove file");
} else {
console.info(`removed`);
}
});
Voici un petit extrait de ce que j'ai fait à cet effet,
var fs = require('fs');
var gutil = require('gulp-util');
fs.exists('./www/index.html', function(exists) {
if(exists) {
//Show in green
console.log(gutil.colors.green('File exists. Deleting now ...'));
fs.unlink('./www/index.html');
} else {
//Show in red
console.log(gutil.colors.red('File not found, so not deleting.'));
}
});
fs.exists
et avant de le supprimer fs.unlink
? Ça pourrait arriver.
unlink
, et s'il n'existe pas, gérez l' ENOENT
erreur. Sinon, vous pouvez créer une condition de concurrence.
Comme réponse acceptée, utilisez fs.unlink
pour supprimer des fichiers.
Mais selon la documentation Node.js
Utiliser
fs.stat()
pour vérifier l'existence d'un fichier avant d'appelerfs.open()
,fs.readFile()
oufs.writeFile()
n'est pas recommandé. Au lieu de cela, le code utilisateur doit ouvrir / lire / écrire le fichier directement et gérer l'erreur déclenchée si le fichier n'est pas disponible.Pour vérifier si un fichier existe sans le manipuler par la suite, il
fs.access()
est recommandé.
pour vérifier que les fichiers peuvent être supprimés ou non, utilisez fs.access
plutôt
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
unlink
directement car ils savent qu'ils ont le droit de supprimer le fichier. Mais fs.access
c'est une bonne alternative s'ils ont besoin de vérifier avant la suppression. Mais je pense que s'ils ont besoin de vérifier si un fichier existe sans le manipuler par la suite, ils devraient naturellement l'utiliser fs.stat
, fs.access
a un but différent à mon humble avis.
Ci-dessous mon code qui fonctionne bien.
const fs = require('fs');
fs.unlink(__dirname+ '/test.txt', function (err) {
if (err) {
console.error(err);
}
console.log('File has been Deleted');
});
2019 et Node 10+ est arrivé . Ci-dessous la version utilisant la méthode asynchrone / attente douce .
Désormais, plus besoin de boucler fs.unlink
dans Promises ni d'utiliser des packages supplémentaires (comme fs-extra
).
Utilisez simplement l' API fs Promises native .
const fs = require('fs').promises;
(async () => {
try {
await fs.unlink('~/any/file');
} catch (e) {
// file doesn't exist, no permissions, etc..
// full list of possible errors is here
// http://man7.org/linux/man-pages/man2/unlink.2.html#ERRORS
console.log(e);
}
})();
Voici les fsPromises.unlink
spécifications des documents Node.
Veuillez également noter que l'API fs.promises est marquée comme expérimentale dans le nœud 10.xx (mais fonctionne parfaitement, cependant) et n'est plus expérimentale depuis 11.14.0
.
vous pouvez utiliser del module pour supprimer un ou plusieurs fichiers dans le répertoire courant. ce qui est bien, c'est qu'il vous protège contre la suppression du répertoire de travail actuel et au-dessus.
const del = require('del');
del(['<your pathere here>/*']).then( (paths: any) => {
console.log('Deleted files and folders:\n', paths.join('\n'));
});
Vous pouvez utiliser la fonction fs.unlink (chemin, rappel) . Voici un exemple de l'encapsuleur de fonctions avec un motif "error-back":
// Dependencies.
const fs = require('fs');
// Delete a file.
const deleteFile = (filePath, callback) => {
// Unlink the file.
fs.unlink(filePath, (error) => {
if (!error) {
callback(false);
} else {
callback('Error deleting the file');
}
})
};
Supprimez les fichiers du répertoire correspondant à l'expression rationnelle pour le nom de fichier. Utilisé uniquement fs.unlink - pour supprimer le fichier, fs.readdir - pour obtenir tous les fichiers d'un répertoire
var fs = require('fs');
const path = '/path_to_files/filename.anyextension';
const removeFile = (fileName) => {
fs.unlink(`${path}${fileName}`, function(error) {
if (error) {
throw error;
}
console.log('Deleted filename', fileName);
})
}
const reg = /^[a-zA-Z]+_[0-9]+(\s[2-4])+\./
fs.readdir(path, function(err, items) {
for (var i=0; i<items.length; i++) {
console.log(items[i], ' ', reg.test(items[i]))
if (reg.test(items[i])) {
console.log(items[i])
removeFile(items[i])
}
}
});
fs-extra
fournit une méthode de suppression:
const fs = require('fs-extra')
fs.remove('/tmp/myfile')
.then(() => {
console.log('success!')
})
.catch(err => {
console.error(err)
})
https://github.com/jprichardson/node-fs-extra/blob/master/docs/remove.md
Utilisez le module NPM fs-extra , qui vous donne tout en fs, plus tout est promis. En prime, une méthode fs.remove () est disponible.
Voici le code où vous pouvez supprimer le fichier / l'image du dossier.
var fs = require('fs');
Gallery.findById({ _id: req.params.id},function(err,data){
if (err) throw err;
fs.unlink('public/gallery/'+data.image_name);
});
delete
alias!