#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