Lista de arquivos

Boa noite,

alguem poderia me explicar como listar arquivos que se encontra em uma pasta no servidor e trazer ele em um dataTable?

grato

Como você pretende ler essa lista de arquivos?
É um diretório aberto via HTTP? Ou quer ler e trazer a lista dos arquivos via FTP?

Por favor, seja mais específico…

Seguinte eu tenho um cadastro no meu sistema jsf e a esse cadastro eu faço upload de algum arquivos e eu queria trazer na tela de cadastro os arquivos que o usuario fez o upload via html no caso

Como é cadastro, você poderia criar uma tabela que gerenciasse os arquivos enviados, armazenando os nomes dos arquivos e/ou path’s dos arquivos enviados, e trouxesse a lista depois dos itens enviados.

Outra sugestao é ao realizar o upload, especificar em uma determinada pasta no servidor os arquivos enviados por usuário:
Uma especie de estrutura que vc poderia montar no servidor mais ou menos assim: /<id_usuario>/arquivo.pdf
Ex: /010101/arquivo1.pdf
/010101/arquivo2.pdf
/010101/arquivo3.pdf

Depois disso, via FTP vc poderia listar os arquivos existentes no diretorio.

Aqui no trabalho me deparei com uma situacao parecida e optei em realizar a segunda sugestão.

bom dia, jsamuel1987

entao eu at consegui fazer a lista

public List<String> listaArquivo(File f, int nivel) {
        List<String> resultado = new ArrayList<String>();
        File[] conteudo = f.listFiles();
        StringBuffer espaco = new StringBuffer();
        for (int i = 0; i < nivel; i++) {
            espaco.append(" ");
        }

        for (int i = 0; i < conteudo.length; i++) {
            if (conteudo[i].isDirectory()) {
                System.out.println(espaco + " + " + conteudo[i].getName());
                //resultado.add(espaco + " + " + conteudo[i].getName());
                listaArquivo(conteudo[i], nivel + 1);
            } else {
                System.out.println(espaco + "   " + conteudo[i].getName());
                resultado.add(espaco + "   " + conteudo[i].getName());
            }
        }
        
        return resultado;
    }

so que assim na linha que contem System.out.println ele me traz a informacao correta dessa forma:
Informações: + documento
Informações: 3-2011-1-2012-02-15-20-53-54.xlsx
Informações: + imagem
Informações: 3-2011-1-2012-02-15-20-53-54.jpg
Informações: 3-2011-1-2012-02-15-20-54-37.jpg
Informações: + pdf

jah no List resultado ele me tras somente o primeiro que eh o nome da pasta

e meus arquivos jah estao fazendo upload com nome padrao tipo (entidade-ano-codigo).pdf

teria alguma sugestao para isso?

Você então nao esta fazendo uma leitura por FTP, correto?

Caso nao seja por FTP, seja uma listagem simples tente algo parecido com isso:

[code]
public static void main(String[] args) {
// TODO code application logic here
List arquivos = new ArrayList();

    File dirFile[] = (new File("C:/").listFiles());
    for (int i = 0; i < dirFile.length; i++) {
        System.out.println("Arquivo: " + dirFile[i].getName());
    }
            
} [/code]

Neste exemplo acima, ele vai trazer tudo aquilo que estiver dentro do “C:/”, independente se for arquivo ou pasta.

[]'s

Acredito que o post anterior não foi muito preciso ou util pra você, posso estar errado.

Peguei o seu fonte e acabou aparecendo um erro de NullPointerException.

Para apenas um entendimento melhor, vamos definir a sua necessidade.

Vamos usar essa situacao como exemplo e veja se bate com a sua necessidade.
Você tem uma pasta onde os usuarios vao subir arquivos, é isso? Vamos dar entao o nome de “Upload” para ela.
Nesta pasta “Upload”, voce cria outras pastas com o ID de cada usuario, e dentro de cada pasta você cria outras pastas chamadas “Imagens” e “Documentos”, neste caso, teriamos a seguinte arvore:

+ Upload
    + 010101
        +  Imagens
            - Imagem1.png
            - Imagem2.png
        +  Documentos
            - Documento1.doc
            - Documento2.doc
    + 010102
        +  Imagens
            - Imagem3.png
            - Imagem4.png
        +  Documentos
            - Documento3.doc
            - Documento4.doc

Você tem essa estrutura de pastas? É esse o resultado que você quer que seja gerado?

jsamuel1987

seguinte a estrutura eh igual a essa

eu tenho uma pasta upload e dentro dela eu tenho a separação por menu tipo a tela de cadastro de processo entao vai ser upload/processo e dai dentro separado por pasta (documento, imagem, pdf) dai eu troco o nome do arquivo para o id do cadastro e vincular esses arquivos para o usuario efetuar download