Skip to content

Delete Files Or Directories

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

Introduction

Managing files efficiently also includes deleting them when they are no longer needed. Whether you're cleaning up temporary files, removing outdated logs, or managing storage space, the file-worker library provides robust tools for safe and efficient file and directory deletion.

Imagine you're developing an application that processes user-generated files. Once a task is completed, those files need to be deleted to free up disk space. The file-worker library offers simple and effective methods to handle such operations.

Features Overview

  • Safe and controlled file deletion.
  • Bulk deletion of files and directories.
  • Filtering and deleting files based on extensions, prefixes, and more.

Getting Started

For installation and dependencies, refer to the Getting Started guide.


Now, let's explore how you can use this library effectively.


Deleting Files and Directories with Erasable

The Erasable interface provides various methods to delete files and directories.

Example: Deleting a Single File

Erasable erasable = new Erasable() {};
File file = new File("temp.txt");

if (erasable.deleteFile(file)) {
    System.out.println("File deleted successfully!");
} else {
    System.out.println("File could not be deleted.");
}

Example: Deleting Multiple Files

List<File> files = List.of(new File("old_log.txt"), new File("backup.zip"));
erasable.delete(files);

System.out.println("Files deleted successfully!");

Unit Test Coverage

The DeleteFileExtensionsTest class verifies this functionality:

@Test
public void testDeleteFile() throws IOException {
    File testFile = new File("test.txt");
    StoreFileExtensions.toFile(testFile, "Temporary content");

    DeleteFileExtensions.deleteFile(testFile);
    assertFalse(testFile.exists());
}

Using DeleteFileExtensions for Advanced Deletion

The DeleteFileExtensions class provides powerful methods for deleting files.

Example: Deleting All Files in a Directory

File directory = new File("temp_files");
DeleteFileExtensions.deleteAllFiles(directory);

System.out.println("All files deleted successfully!");

Example: Deleting Files by Extension

File logsDirectory = new File("logs");
DeleteFileExtensions.deleteAllFilesWithSuffix(logsDirectory, ".log");

System.out.println("All log files deleted!");

Example: Deleting Files with a Specific Prefix

File reportsDirectory = new File("reports");
DeleteFileExtensions.deleteAllFilesWithPrefix(reportsDirectory, "report_");

System.out.println("Old reports deleted!");

Unit Test Coverage

The DeleteFileExtensionsTest class ensures that deletion operations work correctly:

@Test
public void testDeleteAllFilesWithSuffix() throws IOException {
    File directory = new File("test_logs");
    StoreFileExtensions.toFile(new File(directory, "log1.log"), "Log entry");
    StoreFileExtensions.toFile(new File(directory, "log2.log"), "Log entry");

    DeleteFileExtensions.deleteAllFilesWithSuffix(directory, ".log");

    assertFalse(new File(directory, "log1.log").exists());
    assertFalse(new File(directory, "log2.log").exists());
}

Handling Secure File Deletion

When dealing with sensitive information, ensuring files are permanently deleted is important. The file-worker library allows for precise control over what gets deleted.

Example: Secure Deletion with Filters

File dataDirectory = new File("sensitive_data");
FileFilter filter = file -> file.getName().endsWith(".tmp");

DeleteFileExtensions.deleteFilesWithFileFilter(dataDirectory, filter);

System.out.println("Temporary files deleted securely!");

Example: Deleting Files Matching a Specific Pattern

FileFilter filter = file -> file.getName().startsWith("temp_") && file.getName().endsWith(".dat");
DeleteFileExtensions.deleteFilesWithFileFilter(new File("cache"), filter);

System.out.println("Cached data files deleted!");

Unit Test Coverage

The DeleteFileExtensionsTest ensures secure deletion methods function correctly:

@Test
public void testDeleteFilesWithFileFilter() throws IOException {
    File directory = new File("test_cache");
    StoreFileExtensions.toFile(new File(directory, "temp1.dat"), "Cached data");
    StoreFileExtensions.toFile(new File(directory, "temp2.dat"), "Cached data");

    FileFilter filter = file -> file.getName().startsWith("temp_");
    DeleteFileExtensions.deleteFilesWithFileFilter(directory, filter);

    assertFalse(new File(directory, "temp1.dat").exists());
    assertFalse(new File(directory, "temp2.dat").exists());
}

Conclusion

The file-worker library provides a powerful set of tools for managing file deletions safely and efficiently. Whether you need to delete individual files, bulk delete directories, or filter specific file types, this library offers a reliable solution.

Start using it today to streamline your file management and clean-up tasks!

Clone this wiki locally