Como listar o conteudo de um diretorio?

7 respostas
L

Please estou tentando criar uma classe onde ela lista o conteudo de um diretorio para pegar randomicamente um arquivo le o conteudo do mesmo e depois apagar o arquivo.

Grato,
Leonardo Massardi

7 Respostas

R

De uma olhada na classe java.io.File

Rafael

C
File arquivos[];
File diretorio = new File("caminho para o diretorio");
arquivos = diretorio.listFiles();
for(int i = 0; i < arquivos.length; i++)
   System.out.println(arquivos[i].getName());

:wink:

A

Hummmmmmmmm…como listar o diretórios…tudo bem
Mas como pegar um deles randomicamente…vou dar uma olhada…depois posto… :shock:

C

Pra pegar randomicamente é fácil… Se vc colocar tudo em um vetor de arquivos como eu fiz na mensagem acima, você pode "sortear"um inteiro que represente um índice dentro deste vetor, e retornar este arquivo. ficaria mais ou menos assim:

import java.util.Random;

//continuando do código que postei ali em cima...

public File getRandomFile() {
   Random random = new Random();
   int limite = arquivos.length();
   int sorteado = random.nextInt(limite - 1); //gera um numero entre 0 e o último indice do vetor
   return arquivos[sorteado]
}

Falou!

A

cassio:
Pra pegar randomicamente é fácil… Se vc colocar tudo em um vetor de arquivos como eu fiz na mensagem acima, você pode "sortear"um inteiro que represente um índice dentro deste vetor, e retornar este arquivo. ficaria mais ou menos assim:

import java.util.Random;

//continuando do código que postei ali em cima...

public File getRandomFile() {
   Random random = new Random();
   int limite = arquivos.length();
   int sorteado = random.nextInt(limite - 1); //gera um numero entre 0 e o último indice do vetor
   return arquivos[sorteado]
}

Falou!

Sim sim…eu tinha pensado a mesma coisa…acho que é a solução mais viavel é usando um array!:smiley:

J

Eu faço assim pq tem opção para ler arquivos com filtros por extensão.
Como .jpg, .gif, .bmp

se vc for utilizar para ler imagens.

/**
      * Lista e retorna o conteúdo de um diretório.
      * Este conteúdo no caso são imagens.
      *
      * Apenas será mostrado os tipos
      * de arquivo baseados no método accept().
      *
      * @return lstDir
      * @throws Exception
      * @see accept
      */
      public List listarImagemDiretorio() throws Exception{
          File diretorio = new File(System.getProperty("user.dir")+"\imagens\repositorio");
          String [] arquivos = diretorio.list();
          
          List lstDir = new ArrayList();
          System.out.println(arquivos.length);
          
          for(int i=0;i<arquivos.length;i++){
              if(accept(diretorio,arquivos[i])){
                 Imagem imagem = new Imagem();
                 imagem.setCodigo(new Integer(i+1));
                 imagem.setNomeImagem(arquivos[i]);
                 lstDir.add(imagem);
                  
                  System.out.println("Nome Imagem em Tools.java:\n\t"+
                        imagem.getNomeImagem()+"\n" +
                        "\tCódigo: "+imagem.getCodigo()+"\n");
              }else{
                 //throw new Exception("Tipo de Imagem incorreto.");
              }
          }
          return lstDir;
       }
      /**
       * Este método funciona como um filtro
       * para os tipos de arquivo.
       *
       * Os tipos selecionados são do tipo:
       * jpg, gif ou png.
       *
       * @param dir
       * @param name
       * @return boolean
       */
      public boolean accept(File dir, String name) {
          boolean ok = false;
          if(name.endsWith(".jpg")){
              ok = true;
          }
          else if(name.endsWith(".gif")){
              ok = true;
          }
          else if(name.endsWith(".png")){
              ok = true;
          }
          else if(name.endsWith(".bmp")){
              ok = true;
          }
          return ok;
      }

Ai beleza?

At++>

D

jesusjc:
Eu faço assim pq tem opção para ler arquivos com filtros por extensão.
Como .jpg, .gif, .bmp

se vc for utilizar para ler imagens.

/**
      * Lista e retorna o conteúdo de um diretório.
      * Este conteúdo no caso são imagens.
      *
      * Apenas será mostrado os tipos
      * de arquivo baseados no método accept().
      *
      * @return lstDir
      * @throws Exception
      * @see accept
      */
      public List listarImagemDiretorio() throws Exception{
          File diretorio = new File(System.getProperty("user.dir")+"\imagens\repositorio");
          String [] arquivos = diretorio.list();
          
          List lstDir = new ArrayList();
          System.out.println(arquivos.length);
          
          for(int i=0;i<arquivos.length;i++){
              if(accept(diretorio,arquivos[i])){
                 Imagem imagem = new Imagem();
                 imagem.setCodigo(new Integer(i+1));
                 imagem.setNomeImagem(arquivos[i]);
                 lstDir.add(imagem);
                  
                  System.out.println("Nome Imagem em Tools.java:\n\t"+
                        imagem.getNomeImagem()+"\n" +
                        "\tCódigo: "+imagem.getCodigo()+"\n");
              }else{
                 //throw new Exception("Tipo de Imagem incorreto.");
              }
          }
          return lstDir;
       }
      /**
       * Este método funciona como um filtro
       * para os tipos de arquivo.
       *
       * Os tipos selecionados são do tipo:
       * jpg, gif ou png.
       *
       * @param dir
       * @param name
       * @return boolean
       */
      public boolean accept(File dir, String name) {
          boolean ok = false;
          if(name.endsWith(".jpg")){
              ok = true;
          }
          else if(name.endsWith(".gif")){
              ok = true;
          }
          else if(name.endsWith(".png")){
              ok = true;
          }
          else if(name.endsWith(".bmp")){
              ok = true;
          }
          return ok;
      }

Ai beleza?

At++>

Rapaz, devo dizer que vc acaba de dar um Head Shot no meu problema :twisted:

Queria listar os mp3 do meu pc e depois jogá-los dentro de um arquivo ou Banco de Dados.

Bem, posso fechar o resto das 30 abas :lol: :lol: :lol:

Criado 13 de julho de 2006
Ultima resposta 22 de out. de 2008
Respostas 7
Participantes 6