Slt,
voila je fais une appli qui doit scanner un lecteur reseau verifier la presence ou non de fichier.
si il y en a un attendre 10min et rescanner le repertoire si il est toujours la envoyer un mail sinon relancer l'appli.
si il n'y a pas de fichier il faut ke l'appli se relance.
voila mon code si vous pouvez me le corriger merci:
/SearchFile.java
import.java.io.*;
import.java.util.*;
public class SearchFile{
String Rep, nameFich;
File oRep;
public static Scan(String[] args){
String Rep = "//par...."; //chemin du repertoire à lister
File oRep = new File(Rep);
List[] oList = oRep.listFile(new MyFileNameFilter());
//liste des fichiers.txt présents dans le repertoire listé
}
public static void main(String[] args] {
//appel de la methode scan
oRep.Scan(Rep);
//on verifie si il y a un ou plusieurs fichiers dans le repertoire et on recupere leurs noms
for ( int i = 0 ; i < oList[i].length ; ){
String[] nameFich=oList[i++].getName();
//si il y a au moins un fichier alors lancer le compteur de 10min
if (int i > 0; i<list.length; i++){
MonThread t1 = new MonThread();
t1.start();
//si le ou les fichier(s) sont encore dans le repertoire
if (oList[i].equals(nameFich)){
//alors envoyer un mail et relancer l'application
SendMail.envoyerMailSMTP("10.10.50.8",true);
return;
else //sinon relancer l'application
return;
}
}
}
}
public class MyFileNameFilter implements FileNameFilter {
/**
* Méthode acceptant seulement les fichiers .txt
*/
public boolean accept(File oRep, String nameFich) {
if(nameFich.endsWith(".txt"){
return true;
}
return false;
}
}
public class SendMail {
private final static String MAILER_VERSION = "Java";
public static boolean envoyerMailSMTP(String serveur, boolean debug) {
boolean result = false;
try {
Properties prop = System.getProperties();
prop.put("mail.smtp.host", serveur);
Session session = Session.getDefaultInstance(prop,null);
Message message = new MimeMessage(session);
message.setFrom(new InternetAddress("m@moi.com"));
InternetAddress[] internetAddresses = new InternetAddress[1];
internetAddresses[0] = new InternetAddress("mo@moi.com");
message.setRecipients (Message.RecipientType.TO,internetAddresses);
message.setSubject("Attention problème avec un fichier");
message.setText("ce fichier est toujours dans le repertoire:",+ nameFich);
message.setHeader("X-Mailer", MAILER_VERSION);
message.setSentDate(new Date());
session.setDebug(debug);
Transport.send(message);
result = true;
} catch (AddressException e) {
e.printStackTrace();
} catch (MessagingException e) {
e.printStackTrace();
}
return result;
}
public class MonThread extends Thread
boolean oK = true;{
public void run(){
while(oK){
try{
sleep(60000); //attends 10min et scanne le repertoire
oRep.Scan(Rep);
}
catch(InterruptedException e)
{ }/*Une InterruptedException ou juste Exception doit etre catchée mais j'en fais rien dans mon ex*/
}
}
}
}//
MERCI ENCORE POUR VOTRE AIDE
COCO RI CO