Verificar se arquivo existe no dir corrente sem a extensão
13 respostas
guilherme.dio
Boa tarde, estou com um problema aqui, preciso verificar se existe um arquivo no diretório corrente, porém sem possuir sua extensão, eu somente tenho uma mascara desse arquivo, por exemplo:
arquivo1_.
tenho dentro de uma txt varias destas mascaras, que ja fiz o java ler e me retornar em um array todas elas, agora estou querendo veriricar no diretorio corrente a partir destas mascaras, entao eu tentei fazer isto para testar:
mas sempre aparece “DEU ERRADO!” por causa da extensão que esta com * pois eu queria que fosse generico…entao eprgunto, existe algum modo de fazer isso? que nem no DOS qdo tentamos mover algo por exemplo: C:> MOVE C:\arquivo_. D:\arquivo\
eu só preciso checar se arquivos exeistem genéricamente, ou seja, vou usar o asterisco(*) para procurar, mas nao sei como fazer isso no java pq da erro, ele procura o asterisco como extensão de um arquivo mesmo, sendo que nao existem extensões *
douglaskd
bom, se você quer verificar se o nome de um arquivo possui algum tipo de texto similar, use o método indexOf da classe String
agora usar essas mascaras que você comentou, vc vai ter que criar um método para ler cada uma e ver de acordo com o * qual expressão regular usar…
segue um exemplo simples para verificar se há um texto em qualquer lugar da string
if(nomeDoArquivo.indexOf("arquivo1_") > 0){
//adiciona nome do arquivo na lista
}
sephil
Olá,
Você pode listar todos os arquivos do diretório, e em seguida ir perguntando se o nome do arquivo contém a string “arquivo1_” por exemplo.
ficaria algo assim:
Filediretorio=newFile("arquivos/");String[]files=diretorio.list();//aqui vc tem um array com todos nomes de arquivos e diretoriosfor(Filefile:files){if(file.isFile()&&file.getName().contains('arquivo1_'))//verifica se é um arquivo e se o nome dele contém 'arquivo1_'arquivos.add(file);}
=D
guilherme.dio
Eu somente queria saber se existem arquivos num diretorio de acordo com uma mascara pré definida
então arquivo_.
ou seja, essa mascara engloba todos os arquivos com pimeiro nome: arquivo_
independente do que vem depois do underline _
então eu queria saber se num diretorio existem arquivos, para isso criei um File com a mascara que quero, entao pergunto pelo if se o arquivo existe com :
if(arquivo.exists()){ }
porém, nao estou conseguindo fazer isso por causa do asterisco, entao eu rpecisava de uma alternativa pra o asterisoc, ou seja um caracter global para
sephil
guilherme.dio:
Eu somente queria saber se existem arquivos num diretorio de acordo com uma mascara pré definida
então arquivo_.
ou seja, essa mascara engloba todos os arquivos com pimeiro nome: arquivo_
independente do que vem depois do underline _
então eu queria saber se num diretorio existem arquivos, para isso criei um File com a mascara que quero, entao pergunto pelo if se o arquivo existe com :
if(arquivo.exists()){ }
porém, nao estou conseguindo fazer isso por causa do asterisco, entao eu rpecisava de uma alternativa pra o asterisoc, ou seja um caracter global para
Mas colega,
Você concorda que: essa linha aqui faz exatamente isso…?
if(file.isFile()&&file.getName().contains('arquivo1_'))//verifica se é um arquivo e se o nome dele contém 'arquivo1_'
Aqui eu pergunto se o arquivo que está no diretório contém no seu nome a string “arquivo1_” não importando o restante do nome e extensão…
E se o arquivo atender as condições desse if, quer dizer que ele existe e está no diretório.
Não se prenda ao asterísco… pense no problema em sí.
guilherme.dio
Sim, eu tinha mandado aquela resposta pro outro amigo ali de cima
a sua ajuda foi esclarecedora para mim, obrigado!
sephil
guilherme.dio:
Sim, eu tinha mandado aquela resposta pro outro amigo ali de cima
a sua ajuda foi esclarecedora para mim, obrigado!
heheh ops?! foi mal
por nd, estamos ai
kenneth
Fala brow,
Se voce listar os arquivos com File, e fizer um laco para checar seus nomes com:
// nomeDoArquivo é uma Stringif(nomeDoArquivo.startsWith("arquivo_")){// faz algo}
nao funcionaria?
Abraco.
guilherme.dio
Mas como vou fazer o listFiles no diretorio adicionando num array de String? n tem como converter File para String
a não ser que eu faça um for e adicione tudo em um array de String, mas ficará feio.
sephil
o .list() da classe File retorna um array de String mesmo com os nomes dos arquivos e diretórios ‘-’
guilherme.dio
Netbeans me consta que preciso de um array do tipo File e nao de String
kenneth
Fala brow,
Nao sei o que voce ta fazendo ai, mas funcionou aqui:
Você está tentando usar o método listFiles() que retorna um array de arquivos, mas no caso, você teria que utilizar o método list() mesmo.
São dois métodos diferentes da mesma classe.