Recursively delete all empty folders in a directory and child directories.
Install with npm:
$ npm install delete-empty --save
var deleteEmpty = require('delete-empty');
Given the following directory structure, the highlighted directories would be deleted.
foo/
└─┬ a/
- ├── aa/
├─┬ bb/
│ └─┬ bbb/
│ ├── one.txt
│ └── two.txt
- ├─┬ cc/
- │ └── ccc/
- ├ b/
- └ c/
async
deleteEmpty('foo/', function(err, deleted) {
console.log(deleted);
//=> ['foo/aa/', 'foo/a/cc/', 'foo/b/', 'foo/c/']
});
sync
deleteEmpty.sync('foo/');
As with the async method, an array of deleted directories is returned, in case you want to log them out or provide some kind of feedback to the user.
var deleted = deleteEmpty.sync('foo/');
console.log(deleted);
//=> ['foo/aa/', 'foo/a/cc/', 'foo/b/', 'foo/c/']
You might also be interested in these projects:
- copy: Copy files or directories using globs. | homepage
- delete: Delete files and folders and any intermediate directories if they exist (sync and async). | homepage
- fs-utils: fs extras and utilities to extend the node.js file system module. Used in Assemble and… more | homepage
- matched: Adds array support to node-glob, sync and async. Also supports tilde expansion (user home) and… more | homepage
Pull requests and stars are always welcome. For bugs and feature requests, please create an issue.
Generate readme and API documentation with verb:
$ npm install verb && npm run docs
Or, if verb is installed globally:
$ verb
Install dev dependencies:
$ npm install -d && npm test
Jon Schlinkert
Copyright © 2016, Jon Schlinkert. Released under the MIT license.
This file was generated by verb, v0.9.0, on March 24, 2016.