Eae pessoal, tenho uma dúvida em relação a identação em java.
Estou desenvolvendo um aplicativo que faz a sincronização do computador local com um servidor ftp,
estou tendo problemas para listar os arquivos e pastas do servidor ftp, estou usando “identação” mas lista apenas
as primeiras pastas e arquivos dentro da pasta ate o ultimo arquivo ou subpasta.
EX:
pasta1 <- exibe
pasta2 <- exibe
pasta3 <- exibe
arquivo1 <- exibe
arquivo1 <- não exibe
arquivo1 <- não exibe
gostaria de saber onde estou errando no código abaixo.
public class Sincronizar {
private Conectar conectar = new Conectar();
private DefaultListModel dlm = new DefaultListModel();
private FTPFile file;
private FTPFile[] files;
private FTPFile[] lista = null;
private int cont = 0;
public Sincronizar(ObjConectar objCon) {
conectar = (Conectar) objCon.getSource();
}
public DefaultListModel listarDiretorios() throws IOException {
this.files = this.conectar.ftp.listFiles();
this.file = this.files[7];
listarDiretorio(this.file, 0);
return this.dlm;
}
private void listarDiretorio(FTPFile file, int nivel) throws IOException {
if (file.isDirectory()) {
this.dlm.add(cont, getIdentacao(nivel) + file.getName());
cont++;
if (this.conectar.ftp.changeWorkingDirectory(file.getName())) {
this.lista = this.conectar.ftp.listFiles();
} else {
JOptionPane.showMessageDialog(null, "Não foi possivel alterar o diretório.");
}
for (int i = 0; i < this.lista.length; i++) {
if (this.lista[i].getName().equals(".") || this.lista[i].getName().equals("..")) {
} else {
listarDiretorio(this.lista[i], nivel + 1);
}
}
} else {
this.dlm.add(cont, getIdentacao(nivel) + file.getName());
cont++;
}
}
private String getIdentacao(int nivel) {
StringBuffer buffer = new StringBuffer();
for (int i = 0; i < nivel; i++) {
buffer.append(" ");
}
return buffer.toString();
}
}