'List all dirs and files by reading the table of contents of the Zipfile.'

def _filenames(self):

    dirs = []
    files = []
    for name in self.zfh.namelist():
        if name.endswith(posixpath.sep):
            dirs.append(name)
        else:
            files.append(name)
            parent = os.path.dirname(name)
            while ((parent != '') and (parent not in dirs)):
                dirs.append(parent)
                parent = os.path.dirname(parent)
    return (dirs, files)
