Работа с методом Files.list в Java

Работа с методом Files.list в Java

Работа с методом Files.list в Java

Доброго времени суток! В данном примере мы рассмотрим с Вами как можно получить листинг директории в Java
средствами метода Files.list.

Метод Files.list возвращает поток (Stream) элементов каталога. Пример кода ниже:

FilesListMain.java — чтение файлов из текущей директории



package com.myrusakov;



import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Paths;



public class FilesListMain 

{



    public static void main(String[] args)

    {

        try

        {

            // читаем список файлов из текущей папки - .

            Files.list(Paths.get(".")).forEach(path -> System.out.println(path));

        }

        catch(IOException e)

        {

            System.out.println(e.getMessage());

        }



    }

}



Чтение только директорий





package com.myrusakov;



import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Paths;



public class FilesListMain 

{



    public static void main(String[] args)

    {

        try

        {

            var homeDirectory = System.getProperty("user.home");



            Files

                .list(new File(homeDirectory).toPath())      // читаем из домашней папки пользователя

                .filter(path -> path.toFile().isDirectory()) // только директории

                .forEach(System.out::println);               // выводим на печать

        }

        catch(IOException e)

        {

            System.out.println(e.getMessage());

        }



    }

}





С помощью метода toFile мы преобразуем объект Path в файл и вызываем метод isDirectory — таким образом мы оставляем только папки.

Фильтрация содержимого папки по расширениям





package com.myrusakov;



import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Paths;



public class FilesListMain 

{



    public static void main(String[] args)

    {

        try

        {

            String[] pathParts = new String[] { System.getProperty("user.home"), "MyDocuments",  "Downloads" };

            var homeDirectory =  String.join(System.getProperty("file.separator"), pathParts);



            var extension = ".docx";



            Files

                .list(Paths.get(homeDirectory))

                .filter(path -> path.toString().endsWith(extension))

                .forEach(System.out::println);

        }

        catch(IOException e)

        {

            System.out.println(e.getMessage());

        }



    }

}





Подсчет количества файлов в папке с помощью Files.list



package com.myrusakov;



import java.io.IOException;

import java.nio.file.Files;

import java.nio.file.Paths;



public class FilesListMain 

{



    public static void main(String[] args)

    {

        try

        {

            String[] pathParts = new String[] { System.getProperty("user.home"), "MyDocuments",  "Downloads" };

            var homeDirectory =  String.join(System.getProperty("file.separator"), pathParts);



            var extension = ".docx";



            var countOfFiles = Files

                .list(Paths.get(homeDirectory))

                .filter(path -> path.toString()

                .endsWith(extension)).count();



            System.out.printf("В папке %s содержится %d Word файлов", homeDirectory, countOfFiles);

        }

        catch(IOException e)

        {

            System.out.println(e.getMessage());

        }



    }

}



Таким образом, с помощью метода Files.list в Java можно получить нужные данные о содержимом директории.

Источник

НЕТ КОММЕНТАРИЕВ

Оставить комментарий