-
-
Notifications
You must be signed in to change notification settings - Fork 1
File Search Documentation
Efficiently searching for files within directories is essential for many applications. Whether you need to locate configuration files, find duplicate files, or search for specific patterns, the file-worker library provides robust tools for file and directory searching.
Imagine you are working on a project where you need to find log files with a specific prefix, count files in a directory, or recursively locate files matching a pattern. This library enables these tasks with ease.
- Locate files based on name, extension, or content.
- Search directories recursively for matching files.
- Count files within a directory efficiently.
- Retrieve project-specific paths dynamically.
To include this library in your Java project, add the following dependency:
Replace the variable ${latestVersion} with the current latest version:
Define version in the gradle.properties file:
fileWorkerVersion=${latestVersion}
or in the build.gradle ext area:
fileWorkerVersion = "${latestVersion}"
Then, add the dependency:
implementation("io.github.astrapi69:file-worker:$fileWorkerVersion")
For automatic version updates:
[versions]
file-worker-version=${latestVersion}
[libraries]
file-worker = { module = "io.github.astrapi69:file-worker", version.ref = "file-worker-version" }
Then, add:
implementation libs.file.worker
Maven dependency is now available on Sonatype. Check out the
Sonatype repository
for the latest snapshots and releases.
<properties>
...
<file-worker.version>${latestVersion}</file-worker.version>
...
</properties>
<dependencies>
...
<dependency>
<groupId>io.github.astrapi69</groupId>
<artifactId>file-worker</artifactId>
<version>${file-worker.version}</version>
</dependency>
...
</dependencies>The FileSearchExtensions class provides static utility methods for finding files.
File directory = new File("logs");
List<File> logFiles = FileSearchExtensions.findFilesWithPrefixAndExtension(directory, "logfile", "txt");
for (File file : logFiles) {
System.out.println("Found log file: " + file.getName());
}List<File> allTxtFiles = FileSearchExtensions.findFilesWithPrefixAndExtensionRecursive(directory, "logfile", "txt");
System.out.println("Total log files found: " + allTxtFiles.size());The FileSearchExtensionsTest class ensures functionality:
@Test
public void testFindFilesWithPrefixAndExtensionRecursive() {
File directory = new File("testDir");
List<File> files = FileSearchExtensions.findFilesWithPrefixAndExtensionRecursive(directory, "logfile", "txt");
assertEquals(3, files.size());
}The PathFinder class helps retrieve project-related paths dynamically.
File projectRoot = PathFinder.getProjectDirectory();
System.out.println("Project directory: " + projectRoot.getAbsolutePath());File srcMainJava = PathFinder.getSrcMainJavaDir();
System.out.println("Main Java Source Directory: " + srcMainJava.getAbsolutePath());@Test
public void testGetProjectDirectory() {
File projectDir = PathFinder.getProjectDirectory();
assertTrue(projectDir.exists());
}The library provides methods to count files efficiently.
long fileCount = FileSearchExtensions.countAllFilesInDirectory(new File("data"), 0, true);
System.out.println("Total files in directory: " + fileCount);@Test
public void testCountAllFilesInDirectory() {
File directory = new File("testDir");
long count = FileSearchExtensions.countAllFilesInDirectory(directory, 0, true);
assertTrue(count > 0);
}The SearchFileAttributesBean class encapsulates file search attribute flags.
SearchFileAttributesBean attributes = SearchFileAttributesBean.builder()
.ignoreContentEquality(true)
.ignoreLastModified(true)
.build();
System.out.println("Ignore content comparison: " + attributes.isIgnoreContentEquality());@Test
public void testSearchFileAttributesBean() {
SearchFileAttributesBean attributes = new SearchFileAttributesBean(true, false, true, false, true);
assertTrue(attributes.isIgnoreContentEquality());
}The library allows checking whether a file exists in a directory.
boolean fileExists = FileSearchExtensions.containsFile(new File("data"), "config.json");
System.out.println("Config file exists: " + fileExists);@Test
public void testContainsFile() {
File directory = new File("config");
boolean exists = FileSearchExtensions.containsFile(directory, "settings.xml");
assertTrue(exists);
}The file-worker library simplifies file searching and directory traversal, making it a valuable tool for locating, counting, and managing files efficiently.
Start using it today to streamline your file search operations!
- Create New Files And Directories
- Delete Files Or Directories
- File Comparison Documentation
- File Modification And Merging
- File Reading Documentation
- File Renaming Documentation
- File Search Documentation
- File Sorting Documentation
- File Writing Documentation
- Java File Copy Utilities
- System Utilities Documentation