Problemas ao listar diretorios

4 respostas
Sad7

Bom dia pessoal,

Estou com um problema ao listar diretorios.
O que acontece é que meu diretorio pode conter mais de 5000 arquivo as vezes, e eu preciso pegar eles aos poucos e ir fazendo meu processamento, sempre ordenando do mais novo pro mais velho.

Meu problema é que quando existem muitos arquivos, e eu executo este procedimento, o processamento do software ocupa 1 core de processamento.

File[] pkgFiles = dirPkg.listFiles(pkgFilter);				
Arrays.sort(pkgFiles, fileLastModifiedDescComparator);

Alguem sabe se existe alguma maneira de diminuir isso, ou nao tenho como fugir deste problema?!

Grato,
[]s

4 Respostas

pintofree

Tenta colocar isso numa thread separada e ir dando um tempo entre as operações, vai diminuir os recursos utilizados mais vai aumentar seu tempo de processamento. Mais pelo que vc quer resolve

Sad7

É uma ideiaa, ja esta numa thread esse processo, eu soh nao queria ficar gerando interrupcoes dentro do processo, pois eu preciso que isso tenda a 0 mto rapido, eu gostaria mesmo era de dar uma otimizada nesse processo de sort msm…mais nao sei c vai ter como ;/

pintofree

Vai ser dificil, manda o codigo do fileLastModifiedDescComparator para ver se tem algo a ser feito

Sad7
public enum Ordering{
		ASC, DESC
	}
	
	private Ordering ordering;
	
	public FileLastModifiedComparator(Ordering ordering){
		this.ordering = ordering;
	}

	@Override
	public int compare(File f1, File f2) {
		if (ordering.equals(Ordering.DESC)){
			return Long.valueOf(f2.lastModified()).compareTo(f1.lastModified());
		}else{
			return Long.valueOf(f1.lastModified()).compareTo(f2.lastModified());
		}
	}

codigo simples, nada de mais creio eu.

Criado 18 de janeiro de 2011
Ultima resposta 18 de jan. de 2011
Respostas 4
Participantes 2