| HOME | FORUM | INDICE |

ClsRecuperoFile.java

/*
    La classe espone un metodo statico per il recupero dei filename presenti in una cartella

    Autore: Agosto 2009, Giovanni Iacobelli - http://www.iacosoft.com

*/


import java.io.*;
import java.util.*;

class ClsRecuperoFile
{
    /*
        il secondo argomento impostato a TRUE fa in modo che la ricerca
        interessi le eventuali sub directories
    */

    public static Object[] GetFiles(String dir, boolean subdir)
    {
        
        /*
            lo stack ha il compito di memorizzare il path delle directory
            da esplorare
        */

        Stack buf= new Stack();

        /*
            la collection ArrayList ha lo scopo di memorizzare il path
            assoluto dei file trovati
        */

        ArrayList ris = new ArrayList();
        File f= null;
        
        buf.push(dir);
        
        while (!buf.isEmpty())
        {
            //apre la prima directory disponibile nello stack
            f= new File((String)buf.pop());
            
            //estra tutti i file e directory presenti
            File[] file= f.listFiles();

            for(int x= 0; x < file.length; x++)
            {
                    if (file[x].isFile())
                    {
                        ris.add(file[x].getAbsolutePath());    
                        
                    } else if (subdir) //lo stack viene riempito con le directory trovate
                        buf.push(file[x].getAbsolutePath());
            }
            
        }

        //il contenuto della collection verrą riversato in un Array di Object
        return ris.toArray();
        
    }
}