Skip to content

Instantly share code, notes, and snippets.

@jakub-g
Created April 3, 2015 15:31

Revisions

  1. jakub-g created this gist Apr 3, 2015.
    27 changes: 27 additions & 0 deletions cleanEmptyFoldersRecursively.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,27 @@

    function cleanEmptyFoldersRecursively(folder) {
    var fs = require('fs');
    var path = require('path');

    var isDir = fs.statSync(folder).isDirectory();
    if (!isDir) {
    return;
    }
    var files = fs.readdirSync(folder);
    if (files.length > 0) {
    files.forEach(function(file) {
    var fullPath = path.join(folder, file);
    cleanEmptyFoldersRecursively(fullPath);
    });

    // re-evaluate files; after deleting subfolder
    // we may have parent folder empty now
    files = fs.readdirSync(folder);
    }

    if (files.length == 0) {
    console.log("removing: ", folder);
    fs.rmdirSync(folder);
    return;
    }
    }