2017-07-27 10 views
-1

私はJava7にJava8の次のスニペットを変換しようとしています:Java8 - > Java7変換File.walk

Files.walk(Paths.get(modifiedPathName)) 
.filter(Files::isRegularFile) 
.forEach(path -> { 
    mutatedFileStorage.add((T) application.readFromFile(path)); 
    }); 

私は次のことをしようとしました:

Iterator<Path> it = Files.walkFileTree(Paths.get(modifiedPathName)).iterator(); 
Path path = null; 
while(it.hasNext()) { 
    path = it.next(); 
    if(Files.isRegularFile(path)) { 
      mutatedFileStorage.add((T) application.readFromFile(path)); 
    } 
} 

問題がありますエラーが発生し続ける:

error: no suitable method found for walkFileTree(Path) 
     Iterator<Path> it = Files.walkFileTree(Paths.get(modifiedPathName)).iterator(); 

私はコンバート方法を知りませんJava7へFiles.walkをert、私の最高の試みだったので?それを修正するために私のJava7コードに行うことができるいくつかの小さな変更はありますか?それとも何か他のことをしなくてはなりませんか?

+1

まあ、walkFileTree(パス)のJavaDocにありますか?ところでhttps://docs.oracle.com/javase/tutorial/essential/io/walk.html –

+0

はい。 'FileVisitor'が必要ですか? –

+0

'Files.walk'からJava7への変換を開始する場所がわかりません –

答えて

3

は、私はあなたがFiles.walkFileTreeを使用するようにするつもりだと思う:

final Collection<T> finalMutatedFileStorage = mutatedFileStorage; 
final Application finalApplication = application; // guessing at the type here 
Files.walkFileTree(Paths.get(modifiedPathName), new SimpleFileVisitor<Path>() { 
    @Override 
    public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) 
    throws IOException { 
    if (attrs.isRegularFile()) { 
     finalMutatedFileStorage.add((T) finalApplication.readFromFile(file)); 
    } 
    return FileVisitResult.CONTINUE; 
    } 
}); 
+0

'エラー:walkFileTree(String、>)の適切なメソッドが見つかりません。 ' –

+0

Pathを最初の引数として渡す必要があります。 'File.walkFileTree(Path.get(modifiedPathName)、... ' –

+0

また、' path'が定義されていません!また、内部クラスエラーのホストが続きます。 –

関連する問題