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 retrait?
Vous pouvez appeler fs.unlink(path, callback)
pour Asynchronous unlink (2) ou fs.unlinkSync(path)
pour Synchronous unlink (2).
Où path
est le chemin du fichier que vous voulez supprimer.
Par exemple, nous voulons supprimer le fichier discovery.docx
du répertoire c:/book
. 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 voulez vérifier le fichier avant de supprimer s'il existe ou non. Donc, utilisez fs.stat ou fs.statSync (Synchronous) au lieu de fs.exists
. Parce que selon la dernière version de node.js documentation , fs.exists
maintenant deprecated.
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');
});
});
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.'));
}
});
Je ne pense pas que vous deviez 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`);
}
});
En tant que réponse acceptée, utilisez fs.unlink
pour supprimer des fichiers.
Mais selon la documentation de Node.js
L'utilisation de
fs.stat()
pour vérifier l'existence d'un fichier avant d'appelerfs.open()
,fs.readFile()
oufs.writeFile()
n'est pas recommandée. Au lieu de cela, le code utilisateur doit ouvrir/lire/écrire le fichier directement et gérer l'erreur générée si le fichier n'est pas disponible.
fs.access()
est recommandé pour vérifier si un fichier existe sans être manipulé par la suite.
pour vérifier si les fichiers peuvent être supprimés ou non, utilisez plutôt fs.access
fs.access('/etc/passwd', fs.constants.R_OK | fs.constants.W_OK, (err) => {
console.log(err ? 'no access!' : 'can read/write');
});
vous pouvez utiliser del module pour supprimer un ou plusieurs fichiers du répertoire en cours. Ce qui est bien, c’est que cela 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 fs.unlink (chemin, callback) function. Voici un exemple du wrapper de fonction avec le 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 un 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])
}
}
});
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');
});
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 dans fs, plus tout est promis. En prime, il existe une méthode fs.remove () available.