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
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
De uma olhada na classe java.io.File
Rafael
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());

Hummmmmmmmm…como listar o diretórios…tudo bem
Mas como pegar um deles randomicamente…vou dar uma olhada…depois posto… :shock:
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!
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!
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++>
Eu faço assim pq tem opção para ler arquivos com filtros por extensão.
Como .jpg, .gif, .bmpse 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: