2010-06-21 7 views
2

J'ai ce programme java suivant qui retourne certaines classes d'un répertoire. Je veux trouver les noms de paquets pour ces classes ... Comment puis-je faire ça? tout code sera utile.Obtenir les noms de paquetage des classes

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

public class CreateTestPackage 
{ 
    public void execute() 
    { 
     List<Class> findClasses(File directory) throws ClassNotFoundException 
     { 

      List<Class> classes = new ArrayList<Class>(); 
      if (!directory.exists()) 
      { 
       return classes; 
      } 
      File[] files = directory.listFiles(new FilenameFilter() 
      { 
       public boolean accept(File dir, String name) 
       { 
        return name.matches("test.*\\.class"); 
       } 
      }); 
      for (File file : files) 
      { 
       if (file.isDirectory()) 
       { 
        assert !file.getName().contains("."); 
        classes.addAll(findClasses(file)); 
       } 
       else if (file.getName().endsWith(".class")) 
       { 
        classes.add(Class.forName(file.getName().substring(0, file.getName().length() - 6))); 
       } 
      } 
      return classes; 
     } 
    } 




} 

Répondre

2
for(Class c : classes) { 
    c.getPackage().getName(); 
} 
+0

Merci Mike Je reçois cette erreur Erreur de syntaxe, insérer ";" pour terminer LocalVariableDeclarationStatement à Liste findClasses (répertoire de fichiers) throws ClassNotFoundException – Jony

+0

Codenotguru ajouter simplement un ";" à la fin de "c.getPackage(). getName()" – Khanser

+0

Ce que Khanser a dit ... – Mike

Questions connexes