Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    [Java] Assenza / presenza file in directory

    Ho il seguente problema: data una lista di nomi file presente in un file txt, devo verificare che questi file siano tutti presenti in una certa directory. Se non sono presenti devo mandare una mail.
    Io ho fatto così ma non funziona e non capisco perchè:
    codice:
    //Ciclo sull'array dei nomi utenti
    		    for (int i=0; i<arrayDiStringhe.length; i++){
    		    	//Ciclo su tutti i file della directory
    		    	for( File file1 : files ){
    		    		String nFile = estraiNome(file1);
    		    		//se il file xls non è presente
    		    		if ( ! nFile.equals(arrayDiStringhe[i]) ){
    		    			//mando mail
    		    			//Crea oggetto Email e manda mail
    						Email mjm = new Email();
    						mjm.sendMail();
    						System.out.println("Inviata");							
    		    		}
    		    	}
    		    }
    Ho fatto una prova con 2 nomi di file nel txt e 3 file contenuti nella directory e dovrebbe mandare una sola mail, invece ne manda 9

  2. #2

    Re: [Java] Assenza / presenza file in directory

    Originariamente inviato da Fabietto206
    Ho il seguente problema: data una lista di nomi file presente in un file txt, devo verificare che questi file siano tutti presenti in una certa directory.
    Puoi usare la classe java.io.File ed in particolare il metodo exists.

  3. #3
    Cioè?
    Dove dovrei usarlo quel metodo? Nell'if?

  4. #4
    Originariamente inviato da Fabietto206
    Cioè?
    Dove dovrei usarlo quel metodo? Nell'if?
    Si, visto che restituisce un boolean.

    Ad esempio:
    codice:
    for (int i = 0; i < arrayDiStringhe.length; i++){
          File file = new File( pathTuaDirectory + arraydiStringhe[i] );
          if( file.exists() ) {
              ...
          }
    }
    In questo modo non vai a scorrere esplicitamente ogni volta l'intera directory.

  5. #5
    Io ho fatto così, ma non capisco cosa intendi Vincenzo (questo codice si trova nel main):
    codice:
    String path = "C://Programmi//.....//listaUtenti1.txt";
    		    
    		    File fileTxt = new File(path);
    		    FileReader fr = new FileReader(fileTxt);
    		    BufferedReader br = new BufferedReader(fr);
    		    ArrayList<String> aS = new ArrayList<String>();
    		    String s = br.readLine();
    		    	
    		    while (s!=null){
    		    	aS.add(s);
    		    	s = br.readLine();
    		    }
    		    	
    		    String[] arrayDiStringhe = aS.toArray(new String[0]);
                        br.close();
    
                        for (int i=0; i<arrayDiStringhe.length; i++){
    		    	//Ciclo su tutti i file della directory
    		    	System.out.println(i + " riga del file txt");
    		    	for( File file : files ){
    		    		String nFile = estraiNome(file);
    		    		System.out.println(nFile + " file analizzato");
    		    		//se il file xls non è presente
    		    		if ( !nFile.equals(arrayDiStringhe[i]) ){
    		    			//mando mail
    		    			//Crea oggetto Email e manda mail
    						Email mjm = new Email();
    						mjm.sendMail();
    						System.out.println("Inviata mail a " + nFile);							
    		    		}
    		    	}
    		    }
    Riesci ad indicarmi come modificare il mio codice così da inserire il codice che hai scritto tu?
    Dato che non riesco a capire come fare....

  6. #6
    Ho fatto così ma non funziona come dovrebbe:
    codice:
    		    String path = "C://........//listaUtenti1.txt";
    		    
    		    File fileTxt = new File(path);
    		    FileReader fr = new FileReader(fileTxt);
    		    BufferedReader br = new BufferedReader(fr);
    		    ArrayList<String> aS = new ArrayList<String>();
    		    String s = br.readLine();
    		    	
    		    while (s!=null){
    		    	aS.add(s);
    		    	s = br.readLine();
    		    }
    		    	
    		    String[] arrayDiStringhe = aS.toArray(new String[0]);
    		    br.close();
    		  		    
    		    //Ciclo sull'array dei nomi utenti
    		    for (int i=0; i<arrayDiStringhe.length; i++){
    		    	//Ciclo su tutti i file della directory
    		    	System.out.println(i + " riga del file txt");
    		    	File file = new File( path + arrayDiStringhe[i] );
    		    		String nFile = estraiNome(file);
    		    		//se il file xls non è presente
    
    		    		if ( file.exists()){
    		    			//mando mail
    		    			//Crea oggetto Email e manda mail
    						Email mjm = new Email();
    						mjm.sendMail();
    						System.out.println("Inviata mail a " + nFile);							
    		    		}
    		    }
    In pratica ho il mio solito file txt composto dalle stringhe A, B, C e nella directory ho i file A, B. Quindi dovrebbe essere mandata una mail per il file C ma non la manda.

  7. #7
    Ho risolto!!

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.