This Python project provides a suite of file management utilities, including organization, compression, encryption, decryption and basic archive handling. It aims to improve digital organization, streamline file sharing, and offer a layer of security for sensitive data.
-
File Organization: Categorizes files within a target folder based on their extensions (e.g., images, documents, audio, text, etc.)
-
Duplicate Detection: Duplicate Detection: Implements perceptual hashing and the cv2 library to identify duplicate images and files.
-
ZIP Compression: Compresses folders into ZIP archives, optimizing storage space and facilitating easy sharing.
-
File Encryption/Decryption: Utilizes Fernet symmetric encryption (cryptography library) to protect the confidentiality of files.
-
ZIP Extraction: Offers extraction capabilities for ZIP archives using the patoolib library.
-
Python file I/O (os, shutil, zipfile)
-
Data structure usage (dictionaries)
-
Basic image processing (OpenCV)
-
Working with external libraries (cryptography, patoolib, hashlib)
-
Implementing symmetric encryption/decryption concepts
-
Python 3.x
-
Libraries:
-
cryptography
-
patoolib
-
OpenCV
-
hashlib
-
-
Install Python: Download and install an appropriate Python distribution.
-
Install Libraries: Run the following command in your terminal or command prompt:
pip install cryptography patoolib opencv-python hashlib
- Clone the Repository: Clone the File Organizer repository to your local machine using Git. Open a terminal or command prompt and run the following command:
git clone https://github.com/FahimDidnt/File-Manager-Toolkit
python main.py
-
Organization
-
Compression
-
Encryption
-
Decryption
-
ZIP Extraction
-
Start
-
Choose Action:
-
Organize Files
-
Compress Files
-
Encrypt File/Folder
-
Decrypt File/Folder
-
Unzip File
- If Action == "Organize Files":
-
Get Folder Path
-
Iterate Through Files:
-
Check File Type
-
If Image:
-
Calculate Image Hash
-
Duplicate Check
-
-
If Not Image:
-
Calculate File Hash
-
Duplicate Check
-
-
-
Organize: Move File to Subfolder Based on Type
-
- If Action == "Compress Files":
-
Get Folder Path
-
Create ZIP Archive
- If Action == "Encrypt File/Folder":
-
Get File/Folder Path
-
Key Generation
-
Encryption
- If Action == "Decrypt File/Folder":
-
Get File/Folder Path
-
Input Key
-
Decryption
- If Action == "Unzip File":
-
Get ZIP File Path
-
Get Destination Folder
-
Extract Files
- End
-
Contributions are welcome! To report issue or suggest features, please open an issue on the repository.