Dúvidas classe backup .zip

Saudações a todos do PJ!

Encontrei aki no PJ um código para realizar backups de arquivos salvando um .zip. Segue o código:

[code]import java.util.zip.;
import java.io.
;
import javax.swing.;
import javax.swing.event.
;
import java.awt.;
import java.awt.event.
;

import java.util.Calendar;
import java.util.GregorianCalendar;

import java.text.DecimalFormat;

public class backup{

public backup(){

  String filename = "backup"; 
   JFileChooser fc = new JFileChooser(new File(filename)); 
   ExampleFileFilter filter = new ExampleFileFilter(); 
  filter.addExtension("zip"); 
  filter.setDescription("Zip Files"); 
  filter.setExtensionListInDescription(false); 
  fc.setFileFilter( filter ); 
   fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES); 
   fc.setDragEnabled(false); 
   fc.setApproveButtonMnemonic('S'); 
   fc.setApproveButtonToolTipText("Salvar Backup"); 
   fc.setApproveButtonText("Salvar"); 
   fc.setDialogTitle("Backup do Sistema"); 
   
   int result = fc.showOpenDialog(Teste.desktop); 
      
    if( result == JFileChooser.APPROVE_OPTION){ 
        
       File file = fc.getSelectedFile(); 
       
       if(file != null){ 
           
         byte[] buf = new byte[1024]; 
   
         try { 
            File f = new File(lc.getConfig(1)); 
             String[] filenames = f.list(); 
             ZipOutputStream out = new ZipOutputStream(new FileOutputStream( file + getData() + ".zip")); 
      
          
             for (int i=0; i<filenames.length; i++) { 
                 FileInputStream in = new FileInputStream(lc.getConfig(1) + "//" + filenames[i]); 
                 out.putNextEntry(new ZipEntry(filenames[i])); 
      
              
                 int len; 
                 while ((len = in.read(buf)) > 0) { 
                     out.write(buf, 0, len); 
                 } 
      
                 out.closeEntry(); 
                 in.close(); 
             } 
      
          
             out.close(); 
             JOptionPane.showInternalMessageDialog(Teste.desktop, "Backup Criado com Sucesso", "Criando um Backup", JOptionPane.QUESTION_MESSAGE); 
              
         } catch (IOException e) { 
            JOptionPane.showInternalMessageDialog(Teste.desktop, "Não Possivel Criar Backup - Tente Novamente", "", JOptionPane.ERROR_MESSAGE); 
            e.printStackTrace(); 
         } 
      
      } 
  } 

}

public String getData(){

  Calendar cal = new GregorianCalendar(); 
   
  DecimalFormat dig = new DecimalFormat("00"); 
   
  return ("_" + dig.format( cal.get(Calendar.DAY_OF_MONTH)) + "_" + dig.format( cal.get(Calendar.MONTH) + 1) + "_" + dig.format( cal.get(Calendar.YEAR) - 2000)); 

}
} [/code]

Gostaria que alguém que tem implementado esse código me ajudasse a entender algumas partes dele, por exemplo:

File f = new File(lc.getConfig(1)); 

f é um objeto da classe File, mas na instanciação o lc é um objeto de que classe? Onde foi declarado? O faz o método chamado (getConfig(1))?

Aki novamente aparece o getConfig:

FileInputStream in = new FileInputStream(lc.getConfig(1) + "//" + filenames[i]); 

O que está sendo feito? A minha maior dúvida é quanto ao lc? Devo declará-lo de que classe?

Desde já agradeço aos que colaborarem…

Este lc não será um erro de digitação onde o correto seria fc? olha a declaração dele aqui.

JFileChooser fc = new JFileChooser(new File(filename));

To procurando esse lc a meia hora,

tambem acho que deva ser fc…

[]'s

Não é fc, pois não existe o método getConfig() para objetos da classe JFileChooser.

A dúvida continua…

Tenta este Código aí embaixo então, utilizei ele em uma aplicação que fiz na faculdade, é bem simples, se precisar explicar me procura.

[code]
import javax.swing.;
import java.awt.
;
import java.awt.event.;
import java.util.zip.
;
import java.io.;
import java.text.
;
import java.util.Calendar;
import java.util.GregorianCalendar;

public class Backup extends JInternalFrame
{
//Cria o Painel
private JPanel pBackup;

//Cria os Botões
private JButton bGerar, bRestaurar;

//Cria o Layout das Guias
private GridBagLayout gbBackup;
private GridBagConstraints gbCBackup;

//Método Construtor Classe Backup
public Backup()
{
	super("Backup");
	
	//Cria e Instancia o Contentor da Guia e define o layout do contentor
	Container c = getContentPane();
			
	//Instancia o Layout do Painel
	gbBackup = new GridBagLayout();
	gbCBackup = new GridBagConstraints();

	//Instancia o Painel
	pBackup = new JPanel();
	pBackup.setLayout(gbBackup);
	
	//Instancia e Adiciona os Botões
	bGerar = new JButton("Gerar o Backup do Sistema");
	//Adicionando o evento clicar ao botão Gerar
	bGerar.addActionListener
	(
		new ActionListener()
	  	{
			public void actionPerformed(ActionEvent e)
			{
				cliqueGerar();
			}
		}
	);
	
	bRestaurar = new JButton("Restaurar o Backup do Sistema");
	//Adicionando o evento clicar ao botão Restaurar
	bRestaurar.addActionListener
	(
		new ActionListener()
		{
			public void actionPerformed(ActionEvent e)
			{
				if (JOptionPane.showConfirmDialog(Backup.this,"Deseja Realmente Restaurar o Backup?, \n(O Banco Atual será Substituído)","Confirmação",JOptionPane.YES_NO_OPTION)==0)
				{
					cliqueRestaurar();
				}
			}
		}
	);
	
	adComp(bGerar,1,0,2,1,gbCBackup,gbBackup,pBackup);
	adComp(bRestaurar,1,2,2,1,gbCBackup,gbBackup,pBackup);
	
	//Adiciona a Guia ao Contentor
	c.add(pBackup, BorderLayout.NORTH);
	
	//Define as Propriedadas de exibição da Janela
	setSize(450, 80);
	setLocation(100,100);
	setClosable(true);
	setDefaultCloseOperation(WindowConstants.HIDE_ON_CLOSE);
	show();
}

//Método que adiciona os componentes no layout gridBag
private void adComp(Component c, int linha, int coluna, int largura, int altura, GridBagConstraints gb, GridBagLayout gbLayout, JPanel panel)
{
	gb.gridx = coluna;
	gb.gridy = linha;
	gb.gridwidth = largura;
	gb.gridheight = altura;
	gb.anchor = GridBagConstraints.WEST;
	gbLayout.setConstraints(c, gb);
	panel.add(c);
}

//Método que gera o Backup
private void cliqueGerar()
{
	String filename = "backup" + getData();
	try
	{
		File f = new File("c:\TransPsi\Dados\TransPsi.gdb");
		ZipOutputStream out = new ZipOutputStream(new FileOutputStream ("c:\TransPsi\Backup\" + filename + ".zip"));
		FileInputStream in = new FileInputStream(f);
		out.putNextEntry(new ZipEntry("c:\TransPsi\Dados\TransPsi.gdb"));
		int len;
		byte[] buf = new byte[1024];
		while ((len = in.read(buf)) > 0)
		{
			out.write(buf, 0, len);
		}
		out.closeEntry();
		in.close();
		out.close();
		JOptionPane.showMessageDialog(Backup.this,"Backup Gerado com Sucesso", "Confirmação de Backup", JOptionPane.INFORMATION_MESSAGE);
	}
	catch (IOException e)
	{
		JOptionPane.showMessageDialog(Backup.this,"Erro gerando Backup" + e, "Confirmação de Backup", JOptionPane.INFORMATION_MESSAGE);
	}
}

//Método para informar Data Atual
public String getData()
{
	Calendar cal = new GregorianCalendar();
	DecimalFormat dig = new DecimalFormat("00");
	return ("_" + dig.format( cal.get(Calendar.DAY_OF_MONTH)) + "_" + dig.format(cal.get(Calendar.MONTH) + 1) + "_" + dig.format(cal.get(Calendar.YEAR) - 2000));
}

//Método que restaura o Backup
private void cliqueRestaurar()
{
	String filename = "backup" + getData();
	JFileChooser fc = new JFileChooser(new File("backup"));
	fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
	fc.setDragEnabled(false);
	fc.setApproveButtonMnemonic('R');
	fc.setApproveButtonToolTipText("Restaura o arquivo de Backup");
	fc.setApproveButtonText("Restaurar");
	fc.setCurrentDirectory(new File("c:\TransPsi\Backup"));
	fc.setFileSelectionMode(0);
	int result = fc.showOpenDialog(Backup.this);
	if (result == JFileChooser.APPROVE_OPTION)
	{
		try
		{
			File f = fc.getSelectedFile();
			ZipInputStream in = new ZipInputStream(new FileInputStream (f));
			FileOutputStream out = new FileOutputStream("c:\TransPsi\Dados\TransPsi.gdb");
			//in.getNextEntry();
			if (in.getNextEntry().getName().equals("c:\TransPsi\Dados\TransPsi.gdb"))
			{
				int len;
				byte[] buf = new byte[1024];
				while ((len = in.read(buf)) > 0)
				{
					out.write(buf, 0, len);
				}
				in.closeEntry();
				out.close();
				in.close();
				JOptionPane.showMessageDialog(Backup.this,"Restauração Efetuada com Sucesso", "Confirmação de Restauração de Backup", JOptionPane.INFORMATION_MESSAGE);
			}
			else
			{
				JOptionPane.showMessageDialog(Backup.this,"Arquivo de Backup Inválio", "Erro Restaurando Backup", JOptionPane.ERROR_MESSAGE);
				in.closeEntry();
				out.close();
				in.close();
			}
		}
		catch (IOException e)
		{
			JOptionPane.showMessageDialog(Backup.this,"Erro restaurando Backup" + e, "Confirmação de Backup", JOptionPane.INFORMATION_MESSAGE);
		}
	}
}

}[/code][/code]

Valeu clibero!!! Você quebrou o maior galho. Se precisar de alguma coisa que estiver ao meu alcance é só falar.

Abraços,

Grato,

Arlen