Walks the path for a returning the folders and roots for the
        files found, similar to os.walk.
        
        :param      path | <str>

def walk(self, root):
        """
        Walks the path for a returning the folders and roots for the
        files found, similar to os.walk.
        
        :param      path | <str>
        """
        files = []
        folders = []
        
        for relpath in self.listdir(root):
            if self.isfile(root + '/' + relpath):
                files.append(relpath)
            else:
                folders.append(relpath)
        
        yield root, folders, files
        
        for folder in folders:
            folderpath = root + '/' + folder
            for sub_root, sub_folders, sub_files in self.walk(folderpath):
                yield sub_root, sub_folders, sub_files