v1.0.0
Release v1.0.0 - Major Refactor: Rule-Based Organization & Advanced Control
This release represents a significant architectural shift, transforming FileOrganizerNET from an extension-based sorter into a highly configurable and intelligent file management utility. The core logic has been re-engineered to support advanced, rule-driven automation.
BREAKING CHANGE: Configuration File Format
The structure of the config.json file has been completely revamped. This version is not backward-compatible with configurations from previous versions (0.x.x).
Users must update their existing config.json files to the new Rules array format.
Please refer to the updated README.md's "Configuration" section for detailed examples and migration guidance.
Added Features
-
Rule-Based Organization Engine:
The core file processing logic now uses an ordered list ofRules. The application evaluates files against these rules sequentially, applying the first rule that a file matches. This provides precise control over file placement. -
Advanced Rule Conditions:
Rules can now define sophisticated criteria beyond just file extensions. New conditions include:fileNameContains: Match files based on keywords found within their name.olderThanDays: Target files older than a specified number of days (based on last write time).minSizeMB: Identify files larger than a specified size in megabytes.
-
Configurable File Actions:
Each rule can now specify an explicitActionto perform on matching files:Move: Relocates the file to theDestinationFolder. (This remains the default if no action is specified).Copy: Creates a duplicate of the file in theDestinationFolder, leaving the original untouched.Delete: Permanently removes the file from the system. (Use with caution).
-
initCommand for Configuration Generation:
A newinitcommand allows users to generate a comprehensive defaultconfig.jsonfile. This simplifies getting started and provides a template for customization. UseFileOrganizerNET initorFileOrganizerNET init --forceto overwrite existing files. -
validateCommand for Configuration Verification:
A newvalidatecommand checks the syntax and structure of aconfig.jsonfile. This helps users ensure their custom rules are correctly formatted before initiating an organization run, preventing unexpected errors.
Quality Improvements
- Expanded Unit Test Suite: The test coverage has been significantly enhanced to ensure the reliability and correctness of the new rule-based engine, advanced conditions, and configurable actions across various scenarios.