Varrer Arquivo e compactar

Pessoal, estou precisando de uma ajuda, tenho q fazer um aplicativo que varre uma pasta e sub pasta pegando pela extensão .xlg, e pegar todos arquivos com data maior do que 30 dias e compactar, alguem pode me ajudar…

Oi Vanessa,

você já mecheu com arquivos em java antes?

Senão, aqui tem um excelente tutorial sobre arquivos em java.

eu gostaria de saber se consigo ler qualquer arquivo com uma determinada extensao, conforme irei lendo tbm terei q compactar esse arquivo

Sim, até onde eu sei vc consegue compactar todos arquivos.

Da uma olhada nesse link, ve se entende o código, acho que tem tudo que vc precisa:

aqui

O que eu nao entendi, no for tem lt, mas ele nao esta declarado em nenhum lugar…

for (i = 0; i < arquivos.length; i++) {
File arquivo = new File(arquivos[i]);

        if (arquivo.isFile() && !(arquivo.getName()).equals(arqSaida)) {    
           System.out.println("Compactando: " + arquivos[i]);

&lt; = <
&amp; = &

nao entendi, vc pode reescrever para mim o For… e explicar como comentario

[code]

for (i = 0; i < arquivos.length; i++) { //Aqui tinha um &lt; que é igual a < em HTML

File arquivo = new File(arquivos[i]);

if (arquivo.isFile() && !(arquivo.getName()).equals(arqSaida)) { //Aqui tinha dois &amp;, que representa o & comercial, no caso tinha dois &amp;, então ficará &&.

System.out.println("Compactando: " + arquivos[i]);[/code]

Oi, fiz a seguinte alteracao no codigo mas ele nao funciona… como faco para chamar ele no voi main(String [])…

Segue abaixo o codigo …Ele compila e roda mas nao compacta nada… vc tem msn?? Por favor se vc puder me ajudar, pois faz muito tempo q nao mecho com java

import java.io.;
import java.util.zip.
;

public class Compactador {

// ------------------------------------------------ Constantes
static final int TAMANHO_BUFFER = 2048; // 2kb

// ------------------------------------------------ Métodos públicos
public void compactar (String arqSaida) {
int i, cont;
byte[] dados = new byte[TAMANHO_BUFFER];
String arquivos[];
File f = null;
BufferedInputStream origem = null;
FileInputStream streamDeEntrada = null;
FileOutputStream destino = null;
ZipOutputStream saida = null;
ZipEntry entry = null;

  try {    
     destino = new FileOutputStream(arqSaida);    
     saida = new ZipOutputStream(new BufferedOutputStream(destino));   
     f = new File("."); // Todos os arquivos da pasta onde a classe está    
     arquivos = f.list();   
        
     for (i = 0; i &lt; arquivos.length; i++) {    
        File arquivo = new File(arquivos[i]);    

        if (arquivo.isFile() &amp;&amp; !(arquivo.getName()).equals(arqSaida)) {    
           System.out.println("Compactando: " + arquivos[i]);    

           streamDeEntrada = new FileInputStream(arquivo);    
           origem = new BufferedInputStream(streamDeEntrada, TAMANHO_BUFFER);    
           entry = new ZipEntry(arquivos[i]);    
           saida.putNextEntry(entry);   
              
           while((cont = origem.read(dados, 0, TAMANHO_BUFFER)) != -1) {    
              saida.write(dados, 0, cont);    
           }    

           origem.close();    
        }    
     }    

     saida.close();   
         
  } catch(Exception e) {    
     e.printStackTrace();    
  }    

}//fim compactar()

public static void main(String[] args) throws IOException {
	String arquivo = "c:/teste.txt";
	System.out.println("testando");
	FileInputStream fis = new FileInputStream(arquivo);
	ZipInputStream zis = new ZipInputStream(fis);
	ZipEntry entrada = null;
	while ((entrada = zis.getNextEntry()) != null) {
		System.out.println(entrada.getName());
	}
	zis.close();
	fis.close();

}

}//Compactador.class