#12 -- Add directory service
This commit is contained in:
parent
117315024e
commit
c5e1ad8f37
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright (C) 2021 Anton Romanov - All Rights Reserved
|
||||
* You may use, distribute and modify this code, please write to: romanov73@gmail.com.
|
||||
*/
|
||||
|
||||
package ru.ulstu.extractor.heuristic.service;
|
||||
|
||||
import com.sun.istack.NotNull;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.nio.file.Files;
|
||||
import java.nio.file.Path;
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* Сервис для работы с каталогом файловой системы. Для задач проекта нужно получать список файлов.
|
||||
*/
|
||||
@Service
|
||||
public class DirectoryService {
|
||||
|
||||
/**
|
||||
* Получить список файлов, рекурсивно обойдя все дерево каталогов проекта.
|
||||
*
|
||||
* @param directory корневой каталог
|
||||
* @return список всех файлов
|
||||
* @throws IOException при возникновении исключения
|
||||
*/
|
||||
public List<File> getFilesRecursively(@NotNull Path directory) throws IOException {
|
||||
return Files.find(directory,
|
||||
Integer.MAX_VALUE,
|
||||
(filePath, fileAttr) -> fileAttr.isRegularFile())
|
||||
.map(Path::toFile)
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
|
||||
/**
|
||||
* Получить список файлов только текущего каталога
|
||||
*
|
||||
* @param directory текущий каталог
|
||||
* @return список файлов
|
||||
*/
|
||||
public List<File> getDirectoryFiles(@NotNull Path directory) {
|
||||
if (directory.toFile().listFiles() != null) {
|
||||
return Arrays.asList(Objects.requireNonNull(directory.toFile().listFiles()));
|
||||
}
|
||||
return Collections.emptyList();
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user