def encode(targetdir): import os from tqdm import tqdm directory = targetdir selection = [] files = {} global total total = 0 def listdirs(target): global total scandirobj = os.scandir(target) temp = 0 for i in scandirobj: temp += 1 total += 0.1 for it in os.scandir(target): if it.is_dir(): selection.append(it.path.replace(directory, "")) listdirs(it) else: file = open(it.path, 'rb') file = file.read() files[it.path.replace(directory, "")] = file listdirs(directory) output = {} output["selection"] = selection output["files"] = files return output def decode(cffjdata): from tkinter import messagebox import os from tqdm import tqdm import ast try: file = cffjdata if os.path.exists("output"): os.rmdir("output") os.mkdir("output") else: os.mkdir("output") for i in file["selection"]: os.makedirs("output/"+i) for i in file["files"]: file2 = open("output/"+i, 'wb') file2.write(file["files"][i]) file2.close() except Exception as e: messagebox.showerror("fehler", "fehler cffj datei korrupt fehler: {}".format(e))