Preciso deletar todos os arquivos de uma pasta que tenham parte do nome em comum.
Exemplo excluir todos os arquivos “alfa*.txt”.
Alguém sabe??
Obrigado.
A classe File tem um método que te retorna um array de File com o padrão de noem desejado. Aí é só fazer um for() e ir deletando.
fiz assim, está funcionando mas não ficou muito bonito
eu queria saber como defino “cb*.jpg” para não precisar usar getName().toString().indexof("")…
dir = new java.io.File(“c:/temp1”);
java.io.File[] arq = dir.listFiles();
for (int i = 0; i < arq.length; i++)
{
if (arq[i].isFile())
{
if ( (arq[i].getName().toString().indexOf(“cb”)>=0) && (arq[i].getName().toString().indexOf(".jpg")>=0) )
arq[i].delete();
}
}
Vc tem que implementar a interface java.io.FileNameFilter.
Encontrei no google uma implementação q parece ser o q vc precisa:
[code]/**
-
This class implements a FilenameFilter, intended to filter the
-
files listing.
-
@author daniel destro do carmo
*/
class FilenameFilterImpl implements FilenameFilter {
private String filterPattern = null;public FilenameFilterImpl(String filterPattern) {
super();
this.filterPattern = filterPattern;
}public boolean accept(File directory, String filename) {
//you can optimize this filter if desired.
//I was God damn lazy today, I confess… My fault!
if( filename.endsWith(filterPattern) ) return true;
return false;
}
}[/code]
File directory = new File(“C:”);
FilenameFilter filter = new FilenameFilterImpl( “txt” );
File[] filteredFiles = directory.listFiles( filter );
Cara da uma olhada neste codigo, eu usei uma vez para filtra um diretorio, eu to usando o FileNameFilter.
[code]// Filtro
public class Filtro implements FilenameFilter {
protected String extensaoArquivo;
public Filtro(String extensao){
this.extensaoArquivo = "." + extensao;
}
/* (non-Javadoc)
* @see java.io.FilenameFilter#accept(java.io.File, java.lang.String)
* Valida se o Final do Nome do Arquivo é igual a Extensão passada
*/
public boolean accept(File arg0, String nomedoArquivo) {
return(nomedoArquivo.endsWith(this.extensaoArquivo));
}
}
// Classe que le os arquivos utilizando o Filtro
public class LerArquivos{
public static void main(String[] args) {
FilenameFilter filtro = new Filtro("txt");
File conteudoDiretorio = new File("c:");
File arquivos[] = conteudoDiretorio.list(filtro);
for(int i = 0; i < arquivos.length; i++){
System.out.println(arquivos[i]..getName());
}
}
}[/code]
De uma olhada na documentacao do FileNameFilter é muito simples, espero ter ajudado
P.s.: Ptz, enquanto eu digitava o danieldestro ja mandou uma resposta, hauhauhaua
você foi lerdo cara… haahahaahha
estou um passo à frente no mercado de trabalho… haahahha
brincadeirinha!