Récupérer les path des fichier dans une répertoire en java

hamdi_b Messages postés 1 Statut Membre -  
greg6614 Messages postés 629 Statut Membre -
Bonjour,
je voulais afficher les paths de de tous les fichier dans une répertoire , j'ai arrivé à les afficher ssi que cette répertoire ne contient pas des dossier
si quelqu'un connaitre une solution pour afficher tous les paths des fichiers dans un dossier
JFileChooser fc = new JFileChooser();
 
 public void actionPerformed (ActionEvent e){
  fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
  int retour=fc.showOpenDialog(getParent());
  DefaultListModel model = new DefaultListModel(); 
  JList list = new JList(model);
  if (retour==JFileChooser.APPROVE_OPTION){
  
  fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
  File selectedDir = fc.getSelectedFile();
  
  if ( !selectedDir.isDirectory() ) {String b=selectedDir.getAbsolutePath();pathtxt.setText(b);}
  else {File[] files=selectedDir.listFiles();
  for(i=0;i<files.length;i++){if (!files[i].isDirectory()){model.addElement(files[i].getPath()  ); 
  
  
  } 
  
  }
  JOptionPane.showMessageDialog(null,list );

1 réponse

  1. greg6614 Messages postés 629 Statut Membre 107
     
    Salut, rapidement voici comment faire de maniére récursive ou non :

    import java.io.File;
    
    import javax.swing.JFileChooser;
    
    public class ExampleListFiles {
    
    	public static void main(String[] args){
    		JFileChooser fc = new JFileChooser();
    		fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    		int open = fc.showOpenDialog(null);
    		if (open == JFileChooser.APPROVE_OPTION){
    			String selectedFile = fc.getSelectedFile().getAbsolutePath();
    			System.out.println("# Liste des fichiers et dossier de " + selectedFile + " #");
    			listFiles(selectedFile);
    			System.out.println("# Liste récursive des fichiers et dossier de " + selectedFile + " #");
    			listFilesRecursively(selectedFile);
    		}
    	}
    
    	public static void listFiles(String path){
    		File f = new File(path);
    		if (f.isDirectory()){
    			File[] tab = f.listFiles();
    			for (int i = 0; i != tab.length; i++){
    				System.out.println(tab[i].getAbsolutePath());
    			}
    		}
    	}
    
    	public static void listFilesRecursively(String path){
    		File f = new File(path);
    		if (f.isDirectory()){
    			File[] tab = f.listFiles();
    			for (int i = 0; i != tab.length; i++){
    				System.out.println(tab[i].getAbsolutePath());
    				if (tab[i].isDirectory()){
    					listFilesRecursively(tab[i].getAbsolutePath());
    				}
    			}
    		}
    	}
    }


    Si tu as des questions je peux t"expliciter le code, je l'ai codé rapidement il n'est donc pas commenté.
    0