I think I need some help! Locally this code works great and exactly how it scholuld according to task conditions.
Any advices ? hints ?
package com.codegym.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;
/*
What's in the folder?
*/
public class Solution {
public static void main(String[] args) throws IOException {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String string = bufferedReader.readLine();
Path path = Paths.get(string);
if (!path.toFile().isDirectory()) {
System.out.println(path.toString() + " is not a folder");
return;
}
MyFileVisitor myFileVisitor = new MyFileVisitor();
Files.walkFileTree(path, myFileVisitor);
System.out.println("Total folders: " + myFileVisitor.directories);
System.out.println("Total files: " + myFileVisitor.files);
System.out.println("Total size: " + myFileVisitor.byteSize + " bytes");
}
}
class MyFileVisitor extends SimpleFileVisitor<Path> {
int files;
int directories = -1;
int byteSize;
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
if (file.toFile().isFile()) {
files++;
int byteNumer = Files.readAllBytes(file).length;
byteSize = byteSize + byteNumer;
}
return super.visitFile(file, attrs);
}
@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
directories++;
return super.preVisitDirectory(dir, attrs);
}
}