基本的には、ファイルの場所に移動して、その.txtかどうかを確認します。もしそうなら、私はそのファイルを読んでいます。それが再帰的に持っているディレクトリよりも冗長であれば、それらを繰り返してファイルを出力する必要があります。私は現在、ファイルを一覧表示しようとしています。しかし、私は "互換性のない型を取得し続けます:java.io.File [] javo.io.File"に変換することはできませんが、私はファイルまたはパラメータを介してファイルまたはディレクトリを渡す必要がある収集の。私は、質問が正確に求めていることを理解しているかどうかは分からない。ここでファイルと区別してディレクトリを反復して反復処理するにはどうすればよいですか? (Java)
は質問です:
ファイルは、その名拡張子.txtで終わる個々のファイルである場合は、この方法は、以前のextractIntegersメソッドに各行を渡して、一度にテキスト1行として、その内容をお読みください。名前が.txtで終わらない個々のファイルは単に無視する必要があります。 fileがディレクトリの場合、メソッドはそのファイルとディレクトリ内のすべてのファイルに対して再帰的に自身を呼び出す必要があります。 verboseパラメータがtrueに設定されている場合、このメソッドは、処理する各ファイルとディレクトリの名前も出力する必要があります。
public static void collect(File file, Set<Integer> found, boolean verbose)
{
String fileName = file.getName();
String extension = fileName.substring(fileName.lastIndexOf(".") + 1, fileName.length());
String fileLine = "";
BufferedReader reader;
try{
reader = new BufferedReader(new FileReader(file));
if(extension.equals("txt"))
{
while((fileLine = reader.readLine()) != null)
{
extractIntegers(fileLine, found);
}
}
else if(file.isDirectory())
{
if(verbose = true)
{
System.out.println("Directory: " + file.getName());
collect(file.listFiles(), found, true);
}
else
{
collect(file.listFiles(), found, false);
}
}
}
catch(IOException e)
{
System.out.print("file/directory not found");
}
}
私は、.txtファイルをフィルタリングするために 'SimpleFileVisitor'と' DirectoryStream'を常に使用していました。ここには[例](https://docs.oracle.com/javase/tutorial/essential/io/walk.html)があります。 – Prashant
これは繰り返しの質問です。 http://stackoverflow.com/questions/20987214/recursively-list-all-files-within-a-directory-using-nio-file-directorystream –