2010-12-23 1 views
1

Voici mon code, une arborescence de base pour la liste des répertoires dans l'API javafx listview, modifiée un peu pour mes besoins.Comment faire pour obtenirName sur java.io.file.listFiles?

def home_dir = System.getProperty("user.home"); 
    def dir = new File("{home_dir}/Android_Surgeon/Projects"); 

var projectTree = TreeView { 

     root: TreeItem { 
     data: dir 
     expanded:false 
     isLeaf: isLeaf 
     createChildren: createChildren; 
    } 
    showRoot: false 

}

function createChildren(item:TreeItemBase):TreeItemBase[] { 
var file = item.data as File; 
if (file.isDirectory()) { 
    return for (f in file.listFiles()) { 
     TreeItem { 
      data: f 
      createChildren: createChildren; 
      isLeaf: isLeaf; 
     } 
    } 

} 
return []; 

}

function isLeaf(item:TreeItemBase):Boolean { 
def file = item.data as File; 
return file.isFile(); 

}

Je suis assez nouveau à la programmation, je ne peux pas comprendre comment obtenir les noms des java. Tableau io.file pour la boucle dans la fonction createchildren. Lorsque ce code est exécuté, il répertorie le chemin absolu de chaque élément de l'arborescence, le rend laid et difficile à lire. Une alternative que j'utiliserais aussi est de savoir comment obtenir le nom de mon dir dir = new File ("{home_dir}/Android_Surgeon/Projects"), alors allez-y et laissez les sous-dossiers et les fichiers ont le chemin absolu. La première option est préférée. Été une semaine d'essayer de mon propre chef, fatigué et besoin d'aide !!! Merci ...

+0

vous l'avez tagué avec java !! –

Répondre

0

Cela ressemble à Javascript, pas Java. Mais si cette classe est Java, alors vous appelez simplement f.getName(). En regardant votre code, je suppose que vous voulez définir le data du TreeItem au nom du fichier.

Alors:

TreeItem { 
    data: f.getName(); 
    createChildren: createChildren; 
    isLeaf: isLeaf; 
} 

Soit que, ou un ensemble data à une enveloppe pour l'objet qui implémente FiletoString pour retourner uniquement le nom.

+0

Voici ce que je reçois lorsque j'exécute f.getName() Exception dans la liaison: java.lang.ClassCastException: java.lang.String ne peut pas être converti en fichier java.io.File à openproject.Main.isLeaf (Main.fx 63) – drew408

Questions connexes