Skip to content

Instantly share code, notes, and snippets.

@nikku
Created May 30, 2013 09:24
Show Gist options
  • Select an option

  • Save nikku/5676733 to your computer and use it in GitHub Desktop.

Select an option

Save nikku/5676733 to your computer and use it in GitHub Desktop.
Recursive directory delete written in NodeJS
var fs = require('fs');
var util = require('util');
// print process.argv
var dir = process.argv[2];
if (!dir) {
log('usage script DIR_TO_DELETE');
process.exit(1);
}
var i = 0;
function log() {
var args = [].slice.call(arguments);
util.puts(args);
}
function recursiveDelete(base, current) {
if (!current) {
current = base;
}
}
function removeFile(f) {
fs.unlinkSync(f);
}
function recursiveDelete(root, dir, dirName) {
if (root != dir) {
var newName = root + '/f' + (i++);
fs.renameSync(dir, newName);
dir = newName;
}
var files = fs.readdirSync(dir);
files.forEach(function(f) {
var child = dir + '/' + f;
var stats = fs.statSync(child);
if (stats.isDirectory()) {
recursiveDelete(root, child);
} else {
removeFile(child);
}
});
fs.rmdirSync(dir);
}
recursiveDelete(dir, dir);
log('Deleted directory ' + dir);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment