galera,
não tenho experiência com java... programo em c++, php, vb e tal... mas, vendo um exemplo de comunicação com ftp via java, resolvi me aventurar a tentar fazer oq eu precisava...
o contexto é o seguinte... preciso me conectar a um ftp e disparar um alarme quando um novo arquivo for detectado... ou seja... programa fica rodando e quando aparecer um arquivo novo na pasta aparece o alerta.
está tudo indo bem... conecto, o servidor me retorna a lista de arquivos, guardo isso em uma String e entro em um loop q fica pegando a lista e comparando o ultimo arquivo com oq eu peguei antes... nao tive q me preocupar com ordenação pq meus arquivos tem nomes sequenciais e sempre o último é o último msm... =)
obrigado pela colaboração e desculpem algum erro grotesco, java (ainda) não é minha praia
import java.io.File;
import java.io.InputStream;
import java.io.FileInputStream;
import java.applet.AudioClip;
import javax.sound.midi.Soundbank;
import javax.swing.*;
import org.apache.commons.net.ftp.FTPReply;
import org.apache.commons.net.ftp.FTPClient;
public class myFTP {
public static void main( String[] args ) {
String nomeArquivo = null;
FTPClient ftp = new FTPClient();
try {
ftp.connect( "local.newsom.com.br" );
//verifica se conectou com sucesso!
if( FTPReply.isPositiveCompletion( ftp.getReplyCode() ) ) {
ftp.login( "record_ring", "88088" );
} else {
//erro ao se conectar
ftp.disconnect();
System.out.println("Conexão recusada");
System.exit(1);
}
String[] arquivos = ftp.listNames();
String ultimo = arquivos[arquivos.length - 1];
int x=0;
boolean parar=true;
do{
System.out.println("Loop"+x);
x++;
String[] arquivos_checa = ftp.listNames();
String checa = arquivos_checa[arquivos_checa.length - 1];
if (!checa.equals(ultimo)) {
JOptionPane.showMessageDialog(null,"Novo arquivo encontrado: "+checa);
ultimo = checa;
break;
} else {
System.out.println("Não há novos arquivos\n");
}
} while (true);
ftp.disconnect();
System.out.println("Fim. Tchau!");
} catch( Exception e ) {
System.out.println("Ocorreu um erro: "+e);
System.exit(1);
}
}
}
