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 *
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);
}
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í.
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);
}
}
}
}
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.