2017-04-18 1 views
-1

Mit einem Pfad, wie kann ich alle Dateien/Unterverzeichnisse einer bestimmten Tiefebene auflisten?java - Dateien und Unterverzeichnis nur einer bestimmten Verzeichnisebene abrufen

Mit find (...) aus java.nio.file.Files kann ich maxDepth nicht die Tiefe angeben, die ich suchen möchte.

Ich könnte den Matcher in find() verwenden, um die Dateien basierend auf dem Tiefenlevel zu filtern, aber ich weiß nicht, wie man diesen Matcher erstellt.

Im Allgemeinen mit 2 Pfaden, wie kann ich wissen, wenn man ein "Unterpfad" ist und seine Tiefe auf den anderen Pfad bezogen ist?

Dank

+0

a haben Mit 'java.io.File.getParentFile()' können Sie den Pfad in seine Komponenten aufteilen. – Henry

+0

Wie ist 'maxDepth' 'nicht die Tiefe, die ich suchen möchte'? – EJP

+0

@EJP mit zum Beispiel maxDepth = 2 wird es in der Tiefe Ebene 0,1 und 2 suchen. In meinem Fall möchte ich nur in der von mir angegebenen Ebene suchen. zum Beispiel nur Level 2. – res1

Antwort

0

Sie es wie folgt tun:

File folder = new File("your/path"); 
File[] listOfFiles = folder.listFiles(); 

    for (int i = 0; i < listOfFiles.length; i++) { 
     if (listOfFiles[i].isFile()) { 
     System.out.println("File " + listOfFiles[i].getName()); 
     } else if (listOfFiles[i].isDirectory()) { 
     System.out.println("Directory " + listOfFiles[i].getName()); 
     } 
    } 

Es ermöglichen Ihnen, innerhalb Ordner zu gehen, aber wenn Sie eine Ebene gehen wollen tun:

File folder = new File("your/path"); 
    File parentFolder = folder.getParentFile(); 
Verwandte Themen