Esse é o código… Basicamente oque eles esta fazendo puxar os arquivos das pastas… o que esta de errado ?? Ele esta deixando alguns arquivos para tras… oque eu tenho q mudar pra ele puxar TODOS os arquivos ???
Pelo que eu vi, o problema esta aqui:
Ele deixa que tipos de arquivos para trás? Arquivos que estão dentro de outras pastas (que estão dentro da pasta raiz)? Somente arquivos de um determinado tipo?
S
SidJunior
Desculpa escrevi errado, é uma pasta apenas… e ele não esta puxando TODOS os aquivos dessa pasta
S
SidJunior
log de arquivo JSON. Não, são varios arquivos, mas os arquivos log… não esta pegando…
Lucas_Camara1 like
como é essa estrutura de pasta que vc quer ler?
Lucas_Camara1 like
Então, esse é soh o caminho, mas como eh a estrutura dentro dessa pasta?
S
SidJunior
Possue varios arquivos…
o metodo atual pega só os arquivos que estão dentro das pastas
o mlr deixa uma pasta antes os arquivos de log
preciso que pegue tanto os arquivos das pastas como a da pasta anterior…
Segue abaixo:
Collections.sort(folderList,(JsonFileLogo1,JsonFileLogo2)->o1.getName().compareTo(o2.getName()));}catch(Exceptione){error="Error : "+e;}returnSUCCESS;}privateList<JsonFileLog>loadFolderList(Pathdirectory){List<JsonFileLog>folders=newArrayList<>();try(DirectoryStream<Path>directoryStream=Files.newDirectoryStream(directory)){for(Pathpath:directoryStream){if(Files.isDirectory(path)){JsonFileLogfileLog=newJsonFileLog();fileLog.setName(path.getFileName().toString());fileLog.setFileNameList(loadFileNameList(Global.LOG_PATH.resolve(path.getFileName())));folders.add(fileLog);}}}catch(IOExceptionex){log.error("Não foi possível ler diretório de log.",ex);}returnfolders;}privateList<String>loadFileNameList(Pathdirectory){List<String>lineNameList=newArrayList<>();if(Files.exists(directory)){try(DirectoryStream<Path>directoryStream=Files.newDirectoryStream(directory)){for(Pathpath:directoryStream){if(!Files.isDirectory(path)){lineNameList.add(path.getFileName().toString());}}}catch(IOExceptionex){log.error("Não foi possível ler diretório de log.",ex);}Collections.sort(lineNameList);//datasatuaisprimeiroCollections.reverse(lineNameList);}returnlineNameList;}
}
Lucas_Camara1 like
Acho que tu vai ter que ler os arquivos a partir da pasta raiz e ler os arquivos das demais pastas usando um método recursivo.
Esse método eu coloco no lugar do que ja esta feito ou coloco depois ??
Lucas_Camara1 like
Você soh precisa chamar o método search passando a pasta (File folder) e a lista (List<String> result. E essa lista será populada com os paths de todos os arquivos contidos na pasta informada (e em todas as pastas tb, recursivamente). O primeiro parâmetro (String pattern) não precisa, vc pode tirar.
O resultado da chamada à esse método, será a lista preenchida para vc poder continuar sua lógica.
S
SidJunior
ta isso eu entendi, mas onde eu colo exatamente?? rsrs
depois do fechamento do public string findfileslog ou depois do fechamento do private list ou depois do fechamento do private list ??
Lucas_Camara1 like
Em vez de usar esse findFilesLog, vc vai usar o método search. E também não vai precisar mais desse loadFolderList.