видимо из за того что использую не только nio, но не знаю как только при помощи него решить.
новый вариант. теперь пункт про "только .nio" проходит, ну и первый пункт тоже, а остальные красные:
package com.javarush.task.task31.task3113;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.nio.channels.Channels;
import java.nio.channels.ReadableByteChannel;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
/*
Что внутри папки?
*/
public class Solution {
public static void main(String[] args) throws IOException {
directoryInfo(getDirectory());
}
public static Path getDirectory() throws IOException {
ReadableByteChannel in = Channels.newChannel(System.in);
ByteBuffer byteBuffer = ByteBuffer.allocate(1024 * 32);
in.read(byteBuffer);
String temp = new String(byteBuffer.array());
temp = temp.substring(0, temp.indexOf("\n"));
return Paths.get(temp);
}
public static void directoryInfo(Path dir) throws IOException {
if (dir.toFile().isFile()) {
System.out.println(dir + " - не папка");
return;
}
InfoFileVisitor infoFileVisitor = new InfoFileVisitor();
Files.walk(dir).forEach(file -> {
try {
infoFileVisitor.analyzePath(file);
} catch (IOException e) { e.printStackTrace(); }
});
System.out.println("Всего папок - " + infoFileVisitor.folderCount);
System.out.println("Всего файлов - " + infoFileVisitor.fileCount);
System.out.println("Общий размер - " + infoFileVisitor.commonSize);
}
}
import java.io.IOException;
import java.nio.file.Path;
public class InfoFileVisitor {
long commonSize = 0;
int folderCount = -1, fileCount = 0;
public void analyzePath(Path file) throws IOException {
if(file.toFile().isFile()){
fileCount++;
commonSize += file.toFile().length();
} else folderCount++;
}
public int getFileCount() { return fileCount; }
public int getFolderCount() { return folderCount; }
public long getCommonSize() { return commonSize; }
}
package com.javarush.task.task31.task3113;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.Scanner;
import java.util.stream.Collectors;
/*
Что внутри папки?
*/
public class Solution {
public static void main(String[] args) throws IOException {
directoryInfo(getDirectory());
}
public static Path getDirectory() {
return Paths.get(
new Scanner(System.in)
.nextLine());
}
public static void directoryInfo(Path dir) {
if (dir.toFile().isFile()) {
System.out.println(dir + " - не папка");
return;
}
int folderCount = -1, fileCount = 0;
long commonSize = 0;
try {
for (Path p : Files.walk(dir).collect(Collectors.toSet())) {
if (p.toFile().isDirectory())
folderCount++;
else {
fileCount++;
commonSize += p.toFile().length();
}
}
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Всего папок - " + folderCount);
System.out.println("Всего файлов - " + fileCount);
System.out.println("Общий размер - " + commonSize);
}
}