Delete some files in node.js

What is the best way to delete multiple files in node.js?

function deleteFiles(files, callback){ ... } var files = ['file1.js', 'file2.jpg', 'file3.css']; deleteFiles(files, callback); 
+4
source share
4 answers

Asynchronous:

 var fs = require('fs'); function deleteFiles(files, callback){ var i = files.length; files.forEach(function(filepath){ fs.unlink(filepath, function(err) { i--; if (err) { callback(err); return; } else if (i <= 0) { callback(null); } }); }); } var files = ['file1.js', 'file2.jpg', 'file3.css']; deleteFiles(files, function(err) { if (err) { console.log(err); } else { console.log('all files removed'); } }); 

http://nodejs.org/docs/v0.4.1/api/fs.html#file_System

+15
source

This deletes the files in the array and starts the callback once only after deleting all the files.

 function deleteFiles(files, callback){ if (files.length==0) callback(); else { var f = files.pop(); fs.unlink(f, function(err){ if (err) callback(err); else { console.log(f + ' deleted.'); deleteFiles(files, callback); } }); } } 
+5
source

Here is the code to delete multiple files from a directory in node.js,

 var fs = require('fs'); var removeFile= function (err) { if (err) { console.log("unlink failed", err); } else { console.log("file deleted"); } } fs.unlink('filepath', removeFile); // for single file //for multiple files... _.map(yourArray,(files)=>{ fs.unlink('filepath', removeFile); }); 
+1
source

You can use this to delete multiple files (for Linux Env ​​ES6 syntax)

 import {execSync} from "child_process"; ... ... const files = ['file1.js', 'file2.jpg', 'file3.css']; // just example path const rootDir = '/var/www/files/'; if (files.length > 0) execSync('rm -f' + files.map(o => rootDir + o.replace(/(\s+)/g, '\\$1')).join(' ')); 

ignore rm -f if files are missing, and replace with spaces if file names contain it,

0
source

All Articles