Программирование на Java. Сортировка списка файлов.

Владимир | | Java.

Добавляем новые функции в программу поиска файлов

Использование нашего нового класса вообще не представляет сложности.

Для демонстрации его возможностей, я немного изменил программу из предыдущего примера (теперь выводится полный путь для каждого файла).

import java.io.File;
import java.util.List;
import searchtools.FileFinder;
import searchtools.FileSorter;
/*
 * Main.java
 */

/**
 * Программа поиска файлов
 * Параметры поиска:
 * 1 - начальная директория (папка) поиска
 * 2 - регулярное выражение (необязательный)
 * Например:
 * java -jar FileSearchProgram.jar C:junit3.8.1
 * java -jar FileSearchProgram.jar C:junit3.8.1 .*.html
 *
 * @author Стаценко Владимир
 * http://www.vova-prog.narod.ru
 */
public class Main {

    /** Создает экземпляры Main */
    public Main() {
    }

    /**
     * @param args[0] начальная директория (папка) поиска
     * @param args[1] регулярное выражение
     */
    public static void main(String[] args) {
        //проверяем, заданы ли параметры поиска
        if(args != null && args.length >= 1) {
            FileFinder finder = new FileFinder();
            try {
                List searchRes = null;
                //если задано регулярное выражение...
                if(args.length == 2) {
                    //...ищем только соответствующие объекты
                    searchRes = finder.findAll(args[0], args[1]);
                }
                //если нет...
                else {
                    //...ищем все подряд
                    searchRes = finder.findAll(args[0]);
                }
                FileSorter sorter = new FileSorter();
                searchRes = sorter.sort(searchRes);
                //выводим результаты
                for(int i = 0; i < searchRes.size(); i++) {
                    File curObject = (File)searchRes.get(i);
                    if(curObject.isDirectory()) {
                        System.out.println(
                                curObject.getAbsolutePath() + " (папка)");
                    }
                    else {
                        System.out.println(curObject.getAbsolutePath()
                                + " (" + curObject.length() + " байт)");
                    }
                }
                System.out.println("Найдено " + finder.getFilesNumber() +
                        " файлов и " + finder.getDirectoriesNumber() +
                        " папок.");
            }
            catch(Exception err) {
                System.out.println(err.getMessage());
            }
        }
        else {
            System.out.println("Не заданы параметры поиска.n" +
                    "начальная_папка <регулярное_выражение>n");
        }
    }
}

Как видите, все правильно работает.

Скачать:

исходный код библиотеки (FileFinding.zip — 7,7 кБ) поиска

исходный код программы поиска (FileSearchProgram_src.zip — 1,2 кБ)

программу поиска (FileSearchProgram.zip — 4,6 кБ)

Постовой

Cоснa — необыкновенное хвойное дерево
Ландшафтный дизайн вашего участка

Страница: 1 2