imprimer l'arborescence des répertoires
- Je imprimer l'arborescence des répertoires (comme un arbre de commande), exemple:
.
+---A
| +---IMAGES
| +---BACKUP
+---ADOKS
| +---ROZDZIAL_2
| +---ROZDZIAL_3
| +---ROZDZIAL_4
+---AMSC2005
| +---AMSC2004
+---FCCS2005
| +---source
| +---TMP
+---LODZ2004
+---ZAKOPANE2004
+---DYDAKTYKA
| +---DYDAKTYKA_ISI
| | +---COLLS
| | | +---Q1
| | | +---Q2
| | | +---RAZEM
| | | +---RYSUNKI_COLL1
| | | +---RYSUNKI_COLL2
| | +---IMAGES
| | +---src
| | +---WYKLAD5
| +---DYDAKTYKA_PRG
| +---images
| +---POMOC
+---DYDAKTYKA_KST
| +---images
| +---src
+---DYDAKTYKA_WPR
+---images
+---src
J'ai essayé avec le Code suivant:
private static void getInto(String p, int n) {
File path = new File(p);
File[] list = path.listFiles();
for (int i = 0; i < list.length; i++) {
if (list[i].isDirectorhowny()) {
for (int j = 0; j < n; j++)
if (WHAT HERE?)
System.out.print("| ");
else
System.out.print(" ");
System.out.println("+--" + list[i].getName().toString());
getInto(list[i].getPath(), n + 1);
}
}
}
J'ai essayé quelques version, mais c'est toujours pas de travail. Comment faire cela? Ce que l'état devrait être de mettre en Si? Je sais, c'est assez simple, mais je ne peux pas faire cela.
- qu'est-ce que isDirectorhowny???
- mon erreur. isDirectory. Sans doute, j'ai mis de la lettre de ce nom par erreur
- mesure-il finir??
Vous devez vous connecter pour publier un commentaire.
C'est la façon dont je l'ai fait.
Le Code
Le Résultat
La UnitTest
fichier annuaire impression impression
C'est ma solution:
(Le
TreeNode
Classe est copié à partir de il y.)avec cette sortie:
Vous avez besoin d'imprimer de "|" à chaque fois sur le niveau correspondant vous pas traitement de la dernière entrée, mais l'une des entrées avant le dernier. Vous avez besoin de savoir cela pour chaque niveau séparément, de sorte que vous pouvez ajouter un masque de bits ou d'une chaîne de caractères (par exemple) comme un argument supplémentaire pour 'getInto'.
}
Fonctionnera très bien..La Logique est correcte
C'est Mon Code. ses Travaux
Pensez-y comme ça -
Espère que ça aide.
C'est ma solution:
J'ai été tester la solution avec le plus de upticks écrit par @tan70 cependant, il a provoqué une exception de pointeur null sur l'impression de mon répertoire home. J'ai fait quelques recherches et trouvé que listFiles() peut retourner null.
dossier public[] listFiles()
Retourne un tableau de résumé des chemins d'accès indiquant les fichiers dans le répertoire indiqué par ce résumé chemin.
Si ce résumé chemin ne désigne pas un répertoire, alors cette méthode retourne null. Sinon, un tableau d'objets File est retourné, un pour chaque fichier ou répertoire dans le répertoire
De référence et de modifier fucntions de structures en arbre de cette:
avec cette sortie: