Empowering file management with precision and ease.
- Overview
- Features
- Project Structure
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
**fileUtils Project Overview:
**Solving the Chaos of File Management
Key Features: Simplify file operations, extract metadata, bulk rename, organize MP3 files, and automate dependency updates and Java builds.
Benefits: Enhance file processing efficiency, streamline organization, and automate routine tasks for developers and project maintainers.
Target Audience: Developers seeking streamlined file handling and automation in Java projects.
Feature | Summary | |
---|---|---|
⚙️ | Architecture |
|
🔩 | Code Quality |
|
📄 | Documentation |
|
🔌 | Integrations |
|
🧩 | Modularity |
|
🧪 | Testing |
|
⚡️ | Performance |
|
🛡️ | Security |
|
📦 | Dependencies |
|
└── fileUtils/
├── .github
│ ├── dependabot.yml
│ └── workflows
├── LICENSE
├── README.md
├── pom.xml
└── src
└── main
FILEUTILS/
__root__
src
main
java
constants
Configurations.java - Defines environment configurations for the project, ensuring consistent settings across modules
- This interface centralizes key parameters for easy access and modification, promoting maintainability and scalability in the codebase architecture.utils
MetadataExtractorHelper.java - Enables extraction of metadata from image files, including retrieving all EXIF tags, orientation, timezone, capture date, and GPS information
- The code provides methods to access and process various metadata details for a given file, contributing to comprehensive data extraction capabilities within the project's architecture.TikaHelper.java - Provides utility functions to extract content type, metadata, and file extension based on file input using Apache Tika library
- The `getContentType` method detects the content type of a file, while `getMetadata` retrieves metadata
- `getExtention` maps content types to file extensions
- These functions enhance file processing capabilities within the project architecture.mains
AdvancedBulkRename.java - The code file `AdvancedBulkRename.java` facilitates bulk renaming of files within a specified directory
- It iterates through files, extracts metadata, and generates new filenames based on timestamps or parent directory names
- The script offers options for recursive processing and customization of the renaming process.ExtractGpsCoordinates.java - ExtractGpsCoordinates.java processes directories and files to extract GPS coordinates from images' EXIF data
- It recursively navigates directories, reads EXIF tags, and retrieves latitude and longitude information
- This functionality aids in geolocating images within the project's architecture.Mp3FileGroupingDirectory.java - Reorganizes MP3 files based on album names, creating directories for each album and moving files accordingly
- Parses audio file tags to extract album information for directory structuring
- Handles various exceptions during the process.RemoveDirectorySuffix.java - The code file `RemoveDirectorySuffix.java` integrates directories by removing specified suffixes from their names
- It processes subdirectories within a target directory, moving files to new directories with modified names
- This functionality streamlines directory organization by eliminating specific suffix patterns.
.github
dependabot.yml - Automates daily dependency updates for Maven and GitHub Actions, ensuring project dependencies are regularly checked and updated within set limits
- Scheduled to run daily at midnight in the Asia/Tokyo timezone, limiting open pull requests to 10 for each ecosystem.workflows
maven.yml - Automate Java project builds with Maven using GitHub Actions
- Ensure JDK 8 setup, build with Maven, and add labels based on pull request events
- Optimize CI/CD workflows for efficient project development and collaboration.
Before getting started with fileUtils, ensure your runtime environment meets the following requirements:
- Programming Language: Java
Install fileUtils using one of the following methods:
Build from source:
- Clone the fileUtils repository:
❯ git clone https://github.com/cyrus07424/fileUtils
- Navigate to the project directory:
❯ cd fileUtils
- Install the project dependencies:
echo 'INSERT-INSTALL-COMMAND-HERE'
Run fileUtils using the following command: echo 'INSERT-RUN-COMMAND-HERE'
Run the test suite using the following command: echo 'INSERT-TEST-COMMAND-HERE'
-
Task 1
:Implement feature one. -
Task 2
: Implement feature two. -
Task 3
: Implement feature three.
- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests for the
fileUtils
project. - 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your github account.
- Clone Locally: Clone the forked repository to your local machine using a git client.
git clone https://github.com/cyrus07424/fileUtils
- Create a New Branch: Always work on a new branch, giving it a descriptive name.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message describing your updates.
git commit -m 'Implemented new feature x.'
- Push to github: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository. Clearly describe the changes and their motivations.
- Review: Once your PR is reviewed and approved, it will be merged into the main branch. Congratulations on your contribution!
This project is protected under the MIT License License. For more details, refer to the LICENSE file.
- List any resources, contributors, inspiration, etc. here.