Olá pessoal.
Minha aplicação precisa varrer um diretorio de um servidor(tomcat) e ler arquivos texto.
A classe File não funciona nesse caso pelo que testei e pesquisei. É possível fazer o que quero?
Obrigado
Olá pessoal.
Minha aplicação precisa varrer um diretorio de um servidor(tomcat) e ler arquivos texto.
A classe File não funciona nesse caso pelo que testei e pesquisei. É possível fazer o que quero?
Obrigado
veja se isso te ajuda:
File arquivo = new File(caminhoArquivo);
InputStream in = new FileInputStream(arquivo);
ServletOutputStream out = response.getOutputStream();
byte[] buffer = new byte[(int) 1024];
int nLidos;
while ((nLidos = in.read(buffer)) >= 0) {
out.write(buffer, 0, nLidos);
}
out.flush();
out.close();
in.close();
Passei o exemplo errado, segue o correto:
public List recuperaArquivosRecusivamente(List listArquivosBackups, File initialPath, int initialDepth) {
try {
String nomeCompleto = "";
if (initialPath.exists()) {
File[] contents = initialPath.listFiles();
for (int i = 0; i < contents.length; i++) {
nomeCompleto = "";
if (contents[i].isDirectory()) {
recuperaArquivosRecusivamente(listArquivosBackups, contents[i], initialDepth + 1);
} else {
System.out.println((contents[i].getName()));
System.out.println(contents[i].getAbsolutePath());
nomeCompleto = (contents[i].getName());
System.out.println(nomeCompleto);
System.out.println(new Date(contents[i].lastModified()));
listArquivosBackups.add(contents[i]);
}
}
}
} catch (Exception e) {
e.printStackTrace();
}
return listArquivosBackups;
}
uso
String path = "../diretorio";
List listArquivosBackups = new ArrayList();
recuperaArquivosRecusivamente(listArquivosBackups, new File(path), 0);
Não…ambos não funcionaram…
O problema é que o meu enderço é do tipo http://localhost:8080/arquivos/
Desses modos so consigo acessar arquivos locais
Teoricamente, você não deveria poder fazer esse tipo de coisa, já que acesso direto ao servidor é algo “proibido”. Entretanto, você pode fazer algo como os amigos citaram ou, se precisar de acesso a recursos que estão no filesystem, você pode usar servidores de arquivos ou especificações como a JCR (esta é como se fosse a bazuca da história da bazuca e da formiga, mas como eu não sei o tamanho da formiga … ).
[]´s
Já tentou usar a classe URL que tem no java?
Ficaria assim:
URL url = new URL("http://localhost:8080/sistema");