Verificar se arquivo existe no dir corrente sem a extensão

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:

 public static void trataArquivos()
    {
        Vector<Mascaras> mascaras = recebeMascaras();
        Vector arquivos = null;
        String diretorio = "arquivos/";
        /*for(int aux=0;aux<=mascaras.size();aux++)
        {
            arquivos.add(mascaras.get(aux).getMascara());
        }*/
        File arquivo = new File(diretorio+mascaras.get(0).getMascara());
        if(arquivo.exists())
            System.out.println("DEU CERTO!");
        else
            System.out.println("DEU ERRADO!");
    }

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\

Ninguém pode me dar uma ajuda?

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 *

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 }

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:

File diretorio = new File("arquivos/");
String[] files = diretorio.list(); //aqui vc tem um array com todos nomes de arquivos e diretorios

for(File file : files){
   if(file.isFile() && file.getName().contains('arquivo1_')) //verifica se é um arquivo e se o nome dele contém 'arquivo1_'
       arquivos.add(file);
}

=D

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

[quote=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[/quote]

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í.

Sim, eu tinha mandado aquela resposta pro outro amigo ali de cima

a sua ajuda foi esclarecedora para mim, obrigado!

[quote=guilherme.dio]Sim, eu tinha mandado aquela resposta pro outro amigo ali de cima

a sua ajuda foi esclarecedora para mim, obrigado![/quote]

heheh ops?! foi mal

por nd, estamos ai

Fala brow,

Se voce listar os arquivos com File, e fizer um laco para checar seus nomes com:

// nomeDoArquivo é uma String
if (nomeDoArquivo.startsWith("arquivo_")){
   // faz algo
}

nao funcionaria?

Abraco.

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.

o .list() da classe File retorna um array de String mesmo com os nomes dos arquivos e diretórios ‘-’

Netbeans me consta que preciso de um array do tipo File e nao de String

Fala brow,

Nao sei o que voce ta fazendo ai, mas funcionou aqui:


import java.io.File;

public class Diretorio {
    public static void main(String[] args) {
        File dir = new File("C:\pasta\que\voce\quer");
        for (String arquivo : dir.list()){
            if (arquivo.startsWith("arquivo_")) {
                System.out.println(arquivo);
            }
        }
    }
    
}

Abraco

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.