Most, if not all, of this release is internal improvements and bug fixes:
- Improved file extension handling and category mapping
- Enhanced handling of duplicate extensions
- Better management of configuration files, including -proper cleanup of empty categories
- Improved error handling and user prompts
- Significant code refactoring for better maintainability and performance.
While these changes are mostly internal, users may notice improved reliability and performance when organizing files.
Fancy Directory Sort (FancyD) is a pretty darn powerful and customizable file organization tool written in C. It automatically categorizes files in a directory based on their extensions. Assign individual extensions a directory or just use our quick defaults. Fancy!
- Automatic file sorting based on file extensions
- Customizable category configurations using JSON files
- Add new file extensions to existing categories
- Support for organizing the current directory OR a specified directory
- Default categories for on-the-go sorting.
- Ability to reset configuration files any time you want.
- Support for a 'misc' category when no categories are defined
- List command to display current category configurations
- Verbose output option for detailed output to see where each file is going.
- GCC compiler
- Make utility
- cJSON library
- Clone the repository:
git clone https://github.com/BelaBartok39/Fancy_D.git
cd Fancy_D
- Compile the program:
make
- Install the program:
make install
- Clean up.
make clean
Before running this baby on your files, feel free to use our python example scripts (normal/extreme). Either one creates a Test directory full of blank files with random extensions. You can use this to tryout Fancy and see how easy it is before moving any of your own files.
To organize files in the current directory:
fancyD
To organize files in a specific directory:
fancyD /path/to/directory
To add a new file extension to a category:
fancyD --add .xyz newcategory
To create default categories:
fancyD --default
To reset the configuration files:
fancyD --reset
To list all current category configurations:
fancyD --list
To enable verbose output:
fancyD --verbose
-a, --add EXT CATEGORY
: Add a file extension to a category-h, --help
: Display help message-d, --default
: Create default categories-r, --reset
: Reset configuration files-l, --list
: List all current category configurations-v, --verbose
: Enable verbose output
FancyD uses JSON configuration files located in ~/.fancyD/
to define file categories. Each category has its own config file (e.g., document_config.json
, image_config.json
).
Example configuration file (COMP_2100_config.json
):
{
".jpg": "COMP_2100",
".txt": "COMP_2100",
".py": "COMP_2100",
}
You can modify these files to customize your sorting categories and extensions.
If you encounter any issues:
- Ensure all dependencies are correctly installed.
- Check that the configuration files in
~/.fancyD/
are properly formatted JSON. - Use the
--reset
option to reset configuration files if they become corrupted. - If no categories are defined, FancyD will prompt you to create a 'misc' category for all files.
- For long file paths, FancyD implements checks to ensure they don't exceed the maximum path length.
- Use the
--list
option to verify your current category configurations.
Contributions (and suggestions) to Fancy Directory Sort are welcome! Please feel free to submit pull requests, create issues or spread the word.
This project is licensed under the MIT License. Naturally, we are not responsible for what happens to your files if software is not used as designed. Source code available for free.