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…