@Override @Port(name = "files", method = "getTree") public AbstractItem getTree(AbstractItem absRoot) { String nameDirectory = absRoot.getName(); File file = new File(nameDirectory); FolderItem root = new FolderItem(); root.setName(absRoot.getName()); root.setPath("/"); process(file, root); sortList(root.getChilds()); return root; }
public void process(File file, FolderItem item) { if (!file.getName().contains(".git") && !file.getName().endsWith("~")) { if (file.isFile()) { FileItem itemToAdd = new FileItem(); itemToAdd.setName(file.getName()); itemToAdd.setParent(item); itemToAdd.setPath(getRelativePath(file.getPath())); item.add(itemToAdd); } else if (file.isDirectory()) { FolderItem folder = new FolderItem(); folder.setName(file.getName()); folder.setParent(item); folder.setPath(getRelativePath(file.getPath() + "/")); item.add(folder); File[] listOfFiles = file.listFiles(); if (listOfFiles != null) { for (File listOfFile : listOfFiles) process(listOfFile, folder); } } } }