Verificação de arquivos

6 respostas
welingtondias

E ai galera sou novato no ramo da programação em java e estou com um problema que é o seguinte: Estou escrevendo um código que verifica se existe num diretório especifico um arquivo que comece com um certo nome por exemplo “teste” so que no diretório não existe apenas um arquivo e sim vários que começam com o mesmo nome. Então estou tentando criar uma condição que estabeleça que enquanto tiver arquivo neste diretório
que começe com o nome pré-estabelecido guarde o nome e caminho deste arquivo num Map. Alguém pode me ajudar??

Ex:
public class teste3 {

public void tes(){
	
		String nome="teste.txt";
		String in="z:/diversos";
		String out="z:/faculdade";
	
		teste3 ex=new teste3();
		ex.existeArquivo(in,nome,out);
	
	
}

public void existeArquivo(String pathin, String nomeArq,String pathout) {
	
	
	File dirOrigem = new File(pathin);
	File dirDestino =new File(pathout);
	
	if(dirOrigem.exists()) {
		
		File f = new File(dirOrigem, nomeArq);
				
		if(f.exists()){
			
			if(f.getName().startsWith("teste"))			
				{	HashMap map=new HashMap();
							
					while(true)
					{	
						map.put(nomeArq,dirOrigem);
						System.out.println(map);                                          
					}
					
				}
		}
		
	}else{
		System.out.println(false);
	}
	
	
}

public static void main(String[] args) {
	teste3 ini=new teste3();
	ini.tes();

}

}

6 Respostas

ivo_costa

Eu tirei algumas coisas que tu não estava usando agora:

import java.io.File;
import java.util.ArrayList;

public class teste {
    
    public void tes(){
        
        String in="C:/";
        
        teste ex = new teste();
        ex.existeArquivo(in);
    }
    
    public void existeArquivo(String pathin) {
        
        File diretorioInicial = new File(pathin);
        ArrayList<String> lista = new ArrayList<String>();
        
        if(diretorioInicial.exists()){
            
            //Pegue todos os arquivos (inclusive pastas) do diretorioInicial
            File[] arquivo = diretorioInicial.listFiles();
            
            //Procura por arquivos que comecem com teste
            //A string teste poderia ser entregue como parametro para ficar mais legal
            for(File aux : arquivo){
                if(aux.getName().startsWith("teste")){
                    lista.add(aux.getName());
                }
            }
            
            //Pinta todos os elementos da lista
            //Poderia já ser pintado no for anterior sem adicionar os arquivos na lista
            for(String aux : lista){
                System.out.println(aux);
            }
            
        }
        else System.out.println("Diretório inicial não existe");
        
    }
    
    public static void main(String[] args) {
        teste ini = new teste();
        ini.tes();
    }
}
welingtondias

Cara, valeu pela força realmente ele guarda e identifica o arquivo no diretório, só tem um problema ele entra num loop sem fim qdo os arquivos estão sendo guardados no array. Obs: estou implementado com hasmap.

ivo_costa

Coloca ai o código pq o meu ai de cima tá funcionando bem.

ps.: usa a tag code ("[“code][/code”]") pra colocar o teu código.

erickcellani

ViniGodoy:
Primeiro de tudo, está faltando uma coisinha no seu código:
http://www.guj.com.br/posts/list/50115.java

:smiley:

rolemberg

Pessoal já que estamos em um forum…hehhehehehehe ai vai minha duvida…Pq não criar um construtor na classe teste??? pois assim só seria necessario instanciar 1 objeto…será que isso seria viavel???

ivo_costa

Concerteza seria melhor com um construtor, mas eu não quiz mecher muito no código do cara pra não gerar mais dúvidas. Mas mesmo sem o contrutor poderia ser intanciado apenas um objeto:

import java.io.File;
import java.util.ArrayList;

public class teste {
    
    public void tes(){
        String in="C:/";
        existeArquivo(in);
    }
}

mas a melhor forma da classe realmente seria:

import java.io.File;
import java.util.ArrayList;

public class teste {
    
    public teste(){
        String in="C:/";
        existeArquivo(in);
    }
    
    private void existeArquivo(String pathin) {
        
        File diretorioInicial = new File(pathin);
        ArrayList<String> lista = new ArrayList<String>();
        
        if(diretorioInicial.exists()){
            
            //Pegue todos os arquivos (inclusive pastas) do diretorioInicial
            File[] arquivo = diretorioInicial.listFiles();
            
            //Procura por arquivos que comecem com teste
            //A string teste poderia ser entregue como parametro para ficar mais legal
            for(File aux : arquivo){
                if(aux.getName().startsWith("teste")){
                    lista.add(aux.getName());
                }
            }
            
            //Pinta todos os elementos da lista
            //Poderia já ser pintado no for anterior sem adicionar os arquivos na lista
            for(String aux : lista){
                System.out.println(aux);
            }
            
        }
        else System.out.println("Diretório inicial não existe");
        
    }
    
    public static void main(String[] args) {
        new teste();
    }
}
Criado 9 de abril de 2008
Ultima resposta 11 de abr. de 2008
Respostas 6
Participantes 4