Como posso verificar se existe um arquivo antes de abri-lo para leitura em Java (o equivalente ao Perl
-e $filename
)?
A única pergunta semelhante sobre o SO lida com a gravação do arquivo e, portanto, foi respondida usando o FileWriter
que obviamente não é aplicável aqui.
Se possível, eu preferiria uma chamada de API real retornando verdadeiro / falso, em vez de alguns "API de chamada para abrir um arquivo e capturar quando ela lança uma exceção, na qual você verifica 'sem arquivo' no texto", mas eu posso viver com o último.
java
file-io
io
file-exists
DVK
fonte
fonte
canRead
,canWrite
ecanExecute
para verificar que .Respostas:
Usando
java.io.File
:fonte
if(f.isFile())
vez disso.Eu recomendaria usar em
isFile()
vez deexists()
. Na maioria das vezes, você procura verificar se o caminho aponta para um arquivo, não apenas que ele existe. Lembre-se de queexists()
retornará true se o caminho apontar para um diretório.new File("C:/").exists()
retornará true, mas não permitirá que você o abra e leia como um arquivo.fonte
/path
,new File("file.txt").exists()
retornarátrue
se o caminho completo correto for/path/to/file.txt
, a resposta é um grande não (a menos que/path/file.txt
exista outro arquivo ).Usando o nio no Java SE 7,
Se ambos
exists
enotExists
retornar falso, a existência do arquivo não poderá ser verificada. (talvez não haja acesso direto a esse caminho)Você pode verificar se
path
é um diretório ou arquivo regular.Por favor, verifique este tutorial do Java SE 7 .
fonte
java.nio.file.Files.exists()
é muito mais rápido do quejava.io.File.exists()
(no meu pequeno benchmark no único computador que testei: Windows Server 2012 executando Java 1.7.0_45 x64).java.nio.file.Files.exists()
foi 5 vezes mais lento quejava.io.File.exists
. (Win7 Java 1.7.0_79 - x86)Usando o Java 8:
fonte
Files.exists()
leva dois argumentos. Normalmente, você vai querer algo parecidoFiles.exists(path, LinkOption.NOFOLLOW_LINKS )
.Isso não criará um arquivo físico. Apenas criará um objeto da classe File. Para criar fisicamente um arquivo, você deve explicitamente criá-lo:
Portanto,
f.exists()
pode ser usado para verificar se esse arquivo existe ou não.fonte
fonte
-e
também garante que o aplicativo "possa ler" o arquivo?Existem várias maneiras de conseguir isso.
No caso de apenas existir. Pode ser um arquivo ou um diretório.
Procurar arquivo
Verifique o diretório.
Caminho de Java 7.
fonte
Você pode usar o seguinte:
File.exists()
fonte
o primeiro hit para "arquivo java existe" no google:
fonte
String.valueOf()
, que lida com valores nulosNão. Basta pegar o
FileNotFoundException.
arquivo O sistema de arquivos precisa testar se o arquivo existe de qualquer maneira. Não faz sentido fazer tudo isso duas vezes e vários motivos para não fazê-lo, como:Não tente adivinhar o sistema. Sabe disso E não tente prever o futuro. Em geral, a melhor maneira de testar se algum recurso está disponível é apenas tentar usá-lo.
fonte
Para mim, uma combinação da resposta aceita por Sean AO Harney e o comentário resultante de Cort3z parece ser a melhor solução.
Utilizou o seguinte fragmento:
Espero que isso possa ajudar alguém.
fonte
Eu sei que estou um pouco atrasado neste tópico. No entanto, aqui está a minha resposta, válida desde o Java 7 e superior.
O seguinte trecho
é perfeitamente satisfatório, porque o método
isRegularFile
retornafalse
se o arquivo não existir. Portanto, não há necessidade de verificar seFiles.exists(...)
.Observe que outros parâmetros são opções que indicam como os links devem ser manipulados. Por padrão, links simbólicos são seguidos.
Da documentação do Java Oracle
fonte
Files.notExists
,Files.isDirectory
eFiles.isRegularFile.
a melhor alternativa para isso é:path.toFile().exists()
Também vale a pena se familiarizar com o Commons FileUtils https://commons.apache.org/proper/commons-io/javadocs/api-2.5/org/apache/commons/io/FileUtils.html Isso possui métodos adicionais para gerenciar arquivos e geralmente melhor que o JDK.
fonte
Por exemplo, se você possui um diretório de arquivos e deseja verificar se ele existe
exists
retornará false se o arquivo não existirfonte: https://alvinalexander.com/java/java-file-exists-directory-exists
fonte
Exemplo simples com boas práticas de codificação e abrangendo todos os casos:
Referência e mais exemplos em
https://zgrepcode.com/examples/java/java/nio/file/filealreadyexistsexception-implementations
fonte
Se você deseja procurar por um
File
em um diretóriodir
e verifique o
check
resultadofonte
fará o truque
fonte
Não use o construtor File com String.
Isso pode não funcionar!
Em vez disso, use o URI:
fonte
File.exists()
para verificar se existe um arquivo, ele retornará um valor booleano para indicar o status da operação de verificação; true se o arquivo existe; false se não existir.fonte
Você pode usar o seguinte código para verificar:
fonte
Você pode fazer assim
fonte
File.is Exist()
ouFiles.isRegularFile()
em JDK 8Existe um objetivo específico para projetar esses métodos. Não podemos dizer que use alguém para verificar se o arquivo existe ou não.
fonte
Para verificar se existe um arquivo, basta importar a biblioteca java.io. *
Fonte: http://newsdivariotipo.altervista.org/java-come-controllare-se-un-file-esiste/
fonte