Ciao a tutti ragazzi, sto scrivendo un metodo static che mi restituisce la lista di tutti i file contenuti in una determinata cartelle(che io gli passo)e delle rispettive sottocartelle, il metodo è quindi ricorsivo, ma non riesco a capire dove sbaglio,non è che di ricorsione sono molto pratico,mi potete spiegare dove sbaglio?mille grazie.
vi posto il codice...

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


public class RicercaAlbero{

public static String[] list(File f,String[] str){

str=f.list();
for(int i=0;i<f.length();i++){

if(f.isDirectory()==true){
str=RicercaAlbero.list(f,str);
return str;
}
}

return str;
}

public static void main(String[] args){
File f=new File("prova");
String st=System.getProperty("user.dir");
// String[] str=new String[25];
// str=RicercaAlbero.list(f,str);




}
}