Ler diretório de um servidor

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);

Vê se esse exemplo te ajuda

http://diogosoares.info/?p=139#Localizar arquivo dentro da Pasta

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 … :wink: ).

[]´s

Já tentou usar a classe URL que tem no java?

Ficaria assim:


URL url = new URL("http://localhost:8080/sistema");