Подскажите
package com.javarush.task.task31.task3113;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.nio.file.*;
import java.nio.file.attribute.BasicFileAttributes;
/*
Что внутри папки?
*/
public class Solution extends SimpleFileVisitor<Path>{
static int intDirectory=0;
static int intFile=0;
static int intSize=0;
@Override public FileVisitResult visitFile(Path aFile, BasicFileAttributes aAttrs) {
if(aAttrs.isRegularFile())
intFile++;
if (aAttrs.isRegularFile())
intSize+=aAttrs.size();
return FileVisitResult.CONTINUE;
}
@Override public FileVisitResult preVisitDirectory(Path aDir, BasicFileAttributes aAttrs) {
if(aAttrs.isDirectory())
intDirectory++;
return FileVisitResult.CONTINUE;
}
// @Override
// public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
//
// intDirectory++;
// return FileVisitResult.CONTINUE;
// }
// @Override
// public FileVisitResult visitFileFailed(Path file, IOException exc){
//
// return FileVisitResult.CONTINUE;
// }
public static void main(String[] args) throws IOException {
BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
FileVisitor<Path>fileVisitor=new Solution();
while (true){
Path path=Paths.get(bf.readLine());
if(!Files.isDirectory(path)){
System.out.println(path+" - не папка");
bf.close();
break;
}
Files.walkFileTree(path,fileVisitor);
System.out.println("Всего папок - "+(intDirectory-1));
intDirectory=0;
System.out.println("Всего файлов - "+intFile);
intFile=0;
System.out.println("Общий размер - "+intSize);
intSize=0;
// List<Path>listOfDirectory=new ArrayList<>();
// try (Stream<Path> paths = Files.walk(path)) {
// paths.filter(Files::isDirectory)
// .forEach(listOfDirectory::add);
// }
// System.out.println("Всего папок - "+(listOfDirectory.size()-1));
//
// List<Path>list=new ArrayList<>();
// try (Stream<Path> paths = Files.walk(path)) {
// paths
// .filter(Files::isRegularFile)
// .forEach(list::add);
// }
// System.out.println("Всего файлов - "+list.size());
//
// long size = Files.walk(path)
// .filter(p -> p.toFile().isFile())
// .mapToLong(p -> p.toFile().length())
// .sum();
// System.out.println("Общий размер - "+size);
}
}
}