package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*
Проход по дереву файлов
*/
public class Solution {
static List<File> fileList = new ArrayList<>();
public static void main(String[] args) throws Exception {
File folder = new File(args[0]);
File firstResultFile = new File(args[1]);
File secondResultFile = new File("d:/Study/JavaRush/Test/allFilesContent.txt");
deleteOrAdd(folder);
Collections.sort(fileList, new MyFileComparator());
FileUtils.renameFile(firstResultFile, secondResultFile);
writeToFile(fileList, secondResultFile);
}
public static void deleteOrAdd(File files) {
for (File file : files.listFiles()) {
if(file.isDirectory()) {
for (File file1 : file.listFiles()) {
if (file1.length() > 50)
FileUtils.deleteFile(file1);
else
fileList.add(file1);
}
}
if(file.length() > 50)
FileUtils.deleteFile(file);
else if(!file.isDirectory())
fileList.add(file);
}
}
public static void writeToFile(List<File> fileList, File file) throws Exception {
FileWriter fileWriter = new FileWriter(file);
for (File file1 : fileList) {
if(!file1.getName().equals("allFilesContent.txt")) {
BufferedReader reader = new BufferedReader(new FileReader(file1));
while (reader.ready()) {
fileWriter.write(reader.readLine());
}
reader.close();
fileWriter.write("\n");
}
}
fileWriter.close();
}
static class MyFileComparator implements Comparator<File> {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
}
}
Не могу понять, почему не проходит. И хотел бы уточнить, что именно во втором параметре нужно прописывать?
package com.javarush.task.task31.task3101;
import java.io.*;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
/*
Проход по дереву файлов
*/
public class Solution {
static List<File> fileList = new ArrayList<>();
public static void main(String[] args) throws Exception {
File folder = new File(args[0]);
File firstResultFile = new File(args[1]);
File secondResultFile = new File("d:/Study/JavaRush/Test/allFilesContent.txt");
// System.out.println(secondResultFile);
deleteOrAdd(folder);
Collections.sort(fileList, new MyFileComparator());
// FileUtils.renameFile(firstResultFile,
// secondResultFile);
writeToFile(fileList, secondResultFile);
}
public static void deleteOrAdd(File files) {
for (File file : files.listFiles()) {
if(file.isDirectory()) {
for (File file1 : file.listFiles()) {
if (file1.length() > 50)
FileUtils.deleteFile(file1);
else
fileList.add(file1);
}
}
if(file.length() > 50)
FileUtils.deleteFile(file);
else if(!file.isDirectory())
fileList.add(file);
}
}
public static void writeToFile(List<File> fileList, File file) throws Exception {
FileWriter fileWriter = new FileWriter(file);
for (File file1 : fileList) {
if(!file1.getName().equals("allFilesContent.txt")) {
BufferedReader reader = new BufferedReader(new FileReader(file1));
while (reader.ready()) {
fileWriter.write(reader.readLine());
}
reader.close();
fileWriter.write("\n");
}
}
fileWriter.close();
}
static class MyFileComparator implements Comparator<File> {
@Override
public int compare(File o1, File o2) {
return o1.getName().compareTo(o2.getName());
}
}
}