removeFolder(_path = '')
    {
        // Recursive emptying
        const emptyFolder = function(folder)
        {
            // Delete folders
            for(const _folderKey in folder.folders)
            {
                const _folder = folder.folders[_folderKey]

                emptyFolder(_folder)

                folder.folders.splice(_folderKey, 1)

                // Callback
                if(typeof _folder.onRemove === 'function')
                {
                    _folder.onRemove.apply(this, [_folder])
                }
            }

            // Delete files
            for(const _fileKey in folder.files)
            {
                const _file = folder.files[_fileKey]

                folder.files.splice(_fileKey, 1)

                // Callback
                if(typeof _file.onRemove === 'function')
                {
                    _file.onRemove.apply(this, [_file])
                }
            }
        }

        // Errors
        if(typeof _path !== 'string')
        {
            console.warn('removeFolder: _path should be a string')
            return false
        }

        // Set up
        const path = this.cleanPath(_path)
        const pathParts = path.split('/')
        const folderPart = pathParts.pop()

        let folders = this.folders
        let folder = null

        // Each path part
        for(const _part of pathParts)
        {
            const index = folders.findIndex((folder) => _part === folder.name)

            // Found
            if(index !== -1)
            {
                folder = folders[index]
                folders = folder.folders
            }

            // Not found
            else
            {
                folder = null
                folders = null
                break
            }
        }

        // Found
        const index = folders.findIndex((folder) => folderPart === folder.name)
        if(folders && index !== -1)
        {
            const folder = folders[index]

            // Delete
            emptyFolder(folder)
            folders.splice(index, 1)

            // Callback
            if(typeof folder.onRemove === 'function')
            {
                folder.onRemove.apply(this, [folder])
            }

            // Auto wash
            if(this.autoWash)
            {
                this.removeEmptyFolders()
            }

            // Update counts
            this.updateCounts()

            return true
        }

        return false
    }
Remove folder
Will delete contained folders and contained files
@param {String} _path - Folder to delete (start with `./`)
@returns {Boolean} Folder deleted or not