private static List <Folder> process(string folder) { List <Folder> listaFolders = new List <Folder>(); Folder dir; FolderOrder folderOrder = new FolderOrder(-1, 0); Console.WriteLine("Processing folders!"); List <PreFile> listaPrefiles = VisitFoldersUtil.getListFromFiles(folder); foreach (PreFile pf in listaPrefiles) { dir = ProcessFolders.createFolder(pf, folderOrder); listaFolders.Add(dir); } foreach (Folder item in listaFolders) { string pathChild = item.getOriginalPath().Substring(0, item.getOriginalPath().LastIndexOf(item.separatorChar)); Folder pathFather = listaFolders.Find(f => f.getOriginalPath().Equals(pathChild)); if (pathFather != null) { item.setParentCodFolder(pathFather.getOrder()); item.setParentName(pathFather.getName()); item.setParentPath(pathFather.getPath()); } } listaFolders.Sort(); return(listaFolders); }