def traverse(zipfile, graph): fileiterator(zipfile) for root, directories, files in os.walk("temp"): for directory in directories: if "MACOSX" in root or "MACOSX" in directory: continue absPath = os.path.join(root, directory) parent = os.path.basename(os.path.normpath(os.path.dirname(os.path.dirname(os.path.join(absPath, os.pardir))))) if parent in "temp": n = Node.create(directory, "root", None, None, graph) graph.root = n graph.save() else: parentNode = Node.objects.get(title=parent, graph=graph) inside = os.listdir(absPath) leaf = True links = [] for i in inside: if os.path.isdir(os.path.join(absPath, i)): leaf = False else: fileName, fileExtension = os.path.splitext(os.path.join(absPath, i)) if(fileExtension.lower() in accepted): leaf = True l = Link.create("", "soft", os.path.join(absPath, i)) l.save() links.append(l) if leaf: n = Node.create(directory, "leaf", links, parentNode, graph) else: n = Node.create(directory, "branch", None, parentNode, graph) n.save() shutil.rmtree("temp")
def uncompress(self): path = os.path.join(os.path.dirname(os.path.realpath(__file__)),'templates') + '/adjuntos/' zipfilename = path + os.path.basename(self.zipFile.url) path = path +'/zipfile/'+ os.path.basename(self.zipFile.url) + '/' os.makedirs(path) for filename,content in fileiterator(zipfilename): try: f= open(path + filename,'w') f.write(content) f.close() except: os.makedirs(path + filename)
def attachedFiles(self): path = os.path.join(os.path.dirname(os.path.realpath(__file__)),'templates') + '/adjuntos/' zipfilename = path + os.path.basename(self.zipFile.url) pathfile = path +'zipfile/'+ os.path.basename(self.zipFile.url) + '/' return [pathfile + filename for (filename,content) in fileiterator(zipfilename)]