public ActionResult Pasta(string destino) { var MinhaPasta = new Abstracao.Pasta(); var pastafisica = new System.IO.DirectoryInfo(destino); MinhaPasta.Pastas = new List <Abstracao.Pasta>(); MinhaPasta.Arquivos = new List <Abstracao.Arquivos>(); MinhaPasta.Titulo = pastafisica.Name; MinhaPasta.Caminho = pastafisica.FullName; var pastasdapastafisica = pastafisica.GetDirectories(); var arquivosdapastafisica = pastafisica.GetFiles(); for (int i = 0; i < arquivosdapastafisica.Length; i++) { MinhaPasta.Arquivos.Add(new Abstracao.Arquivos { Titulo = arquivosdapastafisica[i].Name, Caminho = arquivosdapastafisica[i].FullName }); } for (int i = 0; i < pastasdapastafisica.Length; i++) { MinhaPasta.Pastas.AddRange(RecursaodePastas(pastasdapastafisica[i], new Abstracao.Pasta())); } return(PartialView(MinhaPasta)); }
public List <Abstracao.Pasta> RecursaodePastas(System.IO.DirectoryInfo Pastapai, Abstracao.Pasta path) { var pastasdapastapai = Pastapai.GetDirectories(); var arquivospastapai = Pastapai.GetFiles(); path.Caminho = Pastapai.FullName; path.Titulo = Pastapai.Name; if (path.Pastas == null) { path.Pastas = new List <Abstracao.Pasta>(); } if (path.Arquivos == null) { path.Arquivos = new List <Abstracao.Arquivos>(); } for (int i = 0; i < pastasdapastapai.Length; i++) { var pastavirtualizada = new Abstracao.Pasta { Caminho = pastasdapastapai[i].FullName, Titulo = pastasdapastapai[i].Name, Arquivos = new List <Abstracao.Arquivos>(), Pastas = new List <Abstracao.Pasta>() }; RecursaodePastas(pastasdapastapai[i], pastavirtualizada); path.Pastas.Add(pastavirtualizada); } for (int i = 0; i < arquivospastapai.Length; i++) { path.Arquivos.Add(new Abstracao.Arquivos { Caminho = arquivospastapai[i].FullName, Titulo = arquivospastapai[i].FullName }); } return(new List <Abstracao.Pasta> { path }); }