def _process_7z_names(self, fd):
        START = "----------"
        names = []
        started = False
        item = {}

        while True:

            try:
                line = fd.readline()
            except:
                break

            if line:
                line = line.rstrip(os.linesep)
                try:
                    # For non-ascii files names
                    line = line.decode("utf-8")
                except:
                    pass

                if line.startswith(START):
                    started = True
                    item = {}
                    continue

                if started:
                    if line == "":
                        if item["Attributes"].find("D") == -1:
                            names.append(item["Path"])
                        item = {}
                    else:
                        key = line.split("=")[0].strip()
                        value = "=".join(line.split("=")[1:]).strip()
                        item[key] = value
            else:
                break

        return names