1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Como verificar se ficheiro não existe?

Discussão em 'Programação' iniciada por paperless, 4 de Dezembro de 2007. (Respostas: 8; Visualizações: 1758)

  1. paperless

    paperless Power Member

    Pessoal, como é que posso verificar se determinado ficheiro do qual quero ler não existe usando um simples try - catch deste género?

    Código:
    try {
    Scanner ficheiro = new Scanner(new File(nome_do_ficheiro));
    }
    ficheiro.close();
    } catch (IOException e) {  System.out.println("Erro na leitura"); }
    ou nem sequer é usando isto e estou a abordar o prob de forma errada?
     
    Última edição: 4 de Dezembro de 2007
  2. AragTey

    AragTey Power Member

    Nem precisas de usar um try catch....basta fazeres o open do ficheiro. Depois se for:

    em C++ fazes: if (ficheiro.is_open())

    em C: if (ficheiro != NULL)

    se o if for verdade o ficheiro exite se não existe segue para o else.
     
  3. MadOnion

    MadOnion Folding Member

    Faz o close, fora do try catch.
    Há uma excepção que é o FileNotFoundException.
    Se estiveres a ler da linha comandos, e não forneceres um args[0], podes usar o ArrayIndexOutOfBoundsException.
    Mas o FileNotFoundException serve para isso, ou seja, se não existe o tal ficheiro(nome_do_ficheiro) na workspace.

    Cumps
     
  4. CyberOps

    CyberOps I'm cool cuz I Fold

    tb podes usar a classe File

    File f = new File(nomeDoFicheiro);
    if(f.exists())
    //existe
    else
    //n existe
     
  5. paperless

    paperless Power Member

    Hoje perguntei ao meu prof. e acho que ja percebi como fazer..estava a complicar..

    Tudo o que tenho a fazer é tentar ler do ficheiro, se não der não dá (a tal filenotfoundexception) que desse, grava-se depois num novo ficheiro com esse nome usando outro método que tenho de fazer.
     
  6. slack_guy

    slack_guy Power Member

    O facto de não conseguires abrir um ficheiro não é sinónimo de que ele não existe; o processo pode não ter permissões para ler esse ficheiro. Logo, se vais criar um ficheiro com esse nome, vai dar-te erro, porque já existe um ficheiro com o mesmo nome.

    Se queres saber se um dado ficheiro existe e respectivas permissões, sem o abrires, usa stat() ou access().
     
  7. paperless

    paperless Power Member

    Para já ainda estou numa fase muito inicial na aprendizagem disto...

    Já acabei o trabalho final.

    Essa parte do try - catch so tive de fazer assim se alguem tiver itneressado em saber

    Código:
    try {
    			[SIZE="1"]Scanner ficheiro = new Scanner(new File(nome_do_ficheiro));
    			numero_de_pontuações_registado = ficheiro.nextInt();
    			this.matriz = new Jogador[numero_de_pontuações_registado];
    			for ( int i = 0; i < numero_de_pontuações_registado; i++) {
    				this.jogadores = new Jogador(ficheiro);
    				matriz[i] = jogadores;[/SIZE]
    			}
    
    			[SIZE="1"]ficheiro.close();[/SIZE]
    
    
    		} catch ([COLOR="#ff8c00"]FileNotFoundException e[/COLOR]) { [COLOR="DarkOrange"]return;[/COLOR] 
    }
     
  8. CrazyBomber

    CrazyBomber Power Member

    Ok tipo...
    era mesmo isto...
     
  9. AliFromCairo

    AliFromCairo Power Member

    O método que ele utilizou também funciona correctamente.

    Em relação à questão dos acessos, existe a excepção SecurityException.
     

Partilhar esta Página