Skip to content

File Search Documentation

Asterios Raptis edited this page Feb 10, 2025 · 3 revisions

Overview

This library provides utilities for searching, finding, and filtering files and directories.

Package Structure

  • io.github.astrapi69.file.search.api

    • Searchable - Interface defining methods for searching files and directories.
  • io.github.astrapi69.file.search

    • FileSearchExtensions - Utility class for searching and filtering files.
    • PathFinder - Utility class for finding paths in Maven projects.
    • SearchFileAttributesBean - Encapsulates file search attribute flags.

Interfaces and Classes

Searchable (Interface)

Defines methods for searching files and directories.

Methods:

  • getRootDirectory(File file) - Retrieves the root directory of a file.
  • containsFile(File parent, File search) - Checks if a file exists in a parent directory.
  • containsFile(File parent, String pathname) - Checks if a file exists by name.
  • findFiles(File directory, Predicate<File> predicate) - Searches for files based on a condition.
  • findFilesRecursive(File directory, Predicate<File> predicate) - Recursively searches for files based on a condition.
  • countAllFilesInDirectory(File dir, long length, boolean includeDirectories) - Counts files in a directory.
  • findAllFiles(File dir, String fileSearchPattern) - Finds all files matching a regex pattern.
  • findFiles(String start, String[] extensions) - Finds files with specific extensions.
  • getAllFilesFromDir(File dir) - Retrieves all files from a directory.
  • getAllFilesFromDirRecursive(File dir) - Retrieves all files from a directory recursively.

FileSearchExtensions

Provides static utility methods for file searching.

Methods:

  • getRootDirectory(File file) - Retrieves the root directory of a file.
  • containsFile(File parent, File search) - Checks if a file exists in a directory.
  • containsFileRecursive(File parent, File search) - Recursively checks if a file exists.
  • findFiles(File directory, Predicate<File> predicate) - Finds files using a filter.
  • findFilesRecursive(File directory, Predicate<File> predicate) - Recursively finds files using a filter.
  • countAllFilesInDirectory(File dir, long length, boolean includeDirectories) - Counts all files in a directory.
  • findAllFiles(File dir, String fileSearchPattern) - Finds files matching a regex pattern.
  • findFilesWithPrefixAndExtension(File dir, String prefix, String extension) - Finds files by prefix and extension.
  • findFilesWithPrefixAndExtensionRecursive(File dir, String prefix, String extension) - Recursively finds files by prefix and extension.

PathFinder

Utility class for retrieving file paths in Maven projects.

Constants:

  • SOURCE_FOLDER_SRC_MAIN_JAVA - src/main/java
  • SOURCE_FOLDER_SRC_MAIN_RESOURCES - src/main/resources
  • SOURCE_FOLDER_SRC_TEST_JAVA - src/test/java
  • SOURCE_FOLDER_SRC_TEST_RESOURCES - src/test/resources

Methods:

  • getCurrentDirectory() - Gets the current working directory.
  • getProjectDirectory() - Retrieves the root directory of a Maven project.
  • getRelativePath(File parent, String... folders) - Builds a relative path.
  • getSrcMainJavaDir() - Gets the src/main/java directory.
  • getSrcMainResourcesDir() - Gets the src/main/resources directory.
  • getSrcTestJavaDir() - Gets the src/test/java directory.
  • getSrcTestResourcesDir() - Gets the src/test/resources directory.

SearchFileAttributesBean

Encapsulates file attribute flags for file comparison.

Attributes:

  • ignoreContentEquality - Ignore content equality.
  • ignoreExtensionEquality - Ignore file extension equality.
  • ignoreLastModified - Ignore last modified timestamps.
  • ignoreLengthEquality - Ignore file length equality.
  • ignoreNameEquality - Ignore filename equality.

Methods:

  • builder() - Returns a builder for creating SearchFileAttributesBean objects.

Clone this wiki locally