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); }
private static Folder createFolder(PreFile pf, FolderOrder folderOrder) { Folder folder = new Folder(pf); if (pf.isDirectory()) { folder.setFolderType('D'); } else { folder.setFolderType('A'); } string sPath = pf.getOriginalPath(); if (Regex.IsMatch(sPath, "[a-zA-Z]:\\\\")) { sPath = sPath.Substring(3); folder.separatorChar = '\\'; } if (Regex.IsMatch(sPath, "[a-zA-Z]:/")) { sPath = sPath.Substring(3); folder.separatorChar = '/'; } if (sPath.StartsWith("/")) { sPath = sPath.Substring(1); folder.separatorChar = '/'; } folder.setPath(sPath.Replace("'", "''").Replace("\\", "/")); folder.setOriginalPath(pf.getOriginalPath()); if (!folder.getPath().Contains("/")) { folderOrder.setCodFolder(folderOrder.getCodFolder() + 1); folderOrder.setOrder(1); } else { folderOrder.setOrder(folderOrder.getOrder() + 1); } folder.setCode(folderOrder.getCodFolder()); folder.setOrder(folderOrder.getOrder()); return(folder); }