2017-04-18 7 views
-1

パスを持つと、特定の深度レベルのすべてのファイル/サブディレクトリを一覧表示するにはどうすればよいですか?java - 特定のディレクトリレベルのファイルとサブディレクトリのみを取得する

java.nio.file.Filesからfind(...)を使用すると、検索したい奥行きではなくmaxDepthを指定できます。

find()でmatcherを使用して深度レベルに基づいてファイルをフィルタリングすることはできましたが、このマッチャーの作成方法はわかりません。

一般に2つのパスを持つ「サブパス」とその深さレベルが他のパスに関連するかどうかをどのように知ることができますか?

おかげ

+0

を持っています'java.io.File.getParentFile()'を見ると、パスをそのコンポーネントに分割することができます。 – Henry

+0

'maxDepth'はどのくらいの深さで検索しませんか? – EJP

+0

@EJP、例えばmaxDepth = 2とすると、深度レベル0,1,2で検索します。私の場合、指定したレベルで検索したいだけです。例えばレベル2だけである。 – res1

答えて

0

あなたはこのようにそれを行うことができます。

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()); 
     } 
    } 

それはあなたがフォルダ内に行くことができますが、あなたは1つ上のレベルに移動する場合の操作を行います。

File folder = new File("your/path"); 
    File parentFolder = folder.getParentFile(); 
関連する問題