diff --git a/Changelog b/Changelog index 06f7336..1ba26b6 100644 --- a/Changelog +++ b/Changelog @@ -4,7 +4,12 @@ - Cleaned a little code - Deleting files and folders i GUI - Support for all notebooks items in GUI -- Support for deleting and adding directories to search and to exclude +- Support for deleting and adding directories to search and to exclude in GUI +- Support for light themes in GUI +- Changed SystemTime to u64 from EPOCH_TIME +- Selective selecting of rows duplicate finder in GUI +- Changed minimum version of GTK to 3.22 +- Added save system to GUI ## Version 0.1.3 - 27.09.2020r - Big code refactoring - now is a lot of easier create new modules and maintain old ones diff --git a/README.md b/README.md index 0ab6178..fc9acb6 100644 --- a/README.md +++ b/README.md @@ -3,10 +3,14 @@ Czkawka is simple, fast and easy to use alternative to Fslint, written in Rust. This is my first ever project in Rust so probably a lot of things are not being written in the most optimal way. ## Why? -In internet exists a lot of tools to find duplicates, empty folders, temporary files etc. but in most cases there are only available on CLI, which is hard to use by users. -GUI FSlint allows to really easy select different files and folders, but is based on old and unsupported Python 2 and GTK 2. +In internet exists a lot of tools to find duplicates, empty folders, temporary files etc. but in most cases there are only available on CLI, which is hard to use by users. + +GUI FSlint allows to really easy select different files and folders, but is based on old and unsupported Python 2 and GTK 2. + Other tools are mostly written in C/C++ to provide big performance but still needs to be tested a lot if not contains memory leaks, invalid memory reads/write and double frees. +But the most important thing for me was to learn Rust and create a program useful for the open source community. + ## Features - Written in fast and memory safe Rust - CLI frontend, very fast and powerful with rich help @@ -89,6 +93,26 @@ Empty folder finder Differences should be more visible when using slower processor or faster disk. +## Comparsion with FSLint + +| | Czkawka | FSlint | +|:----------:|:-------------:|:-----:| +| Language | Rust| Python | +| Framework | GTK 3 (Gtk-rs)| GTK 2 (PyGTK) | +| Duplicate finder | Yes | Yes | +| Empty files | Yes | Yes | +| Empty folders | Yes | Yes | +| Temporary files | Yes | Yes | +| Big files | Yes | No | +| Installed packages | No | Yes | +| Invalid names | No | Yes | +| Names conflict | No | Yes | +| Invalid symlinks | No | Yes | +| Bad ID | No | Yes | +| Non stripped binaries | No | Yes | +| Redundant whitespace | No | Yes | +| Project Activity | High | Very Low | + ## How it works? ### Duplicate Finder The only required parameter for checking duplicates is included folders `-i`. This parameter validates provided folders - which must have absolute path(without ~ and other similar symbols at the beginning), not contains *(wildcard), be dir(not file or symlink), exists. Later same things are done with excluded folders `-e`. diff --git a/czkawka_cli/src/main.rs b/czkawka_cli/src/main.rs index 6140140..ae7d8e8 100644 --- a/czkawka_cli/src/main.rs +++ b/czkawka_cli/src/main.rs @@ -364,11 +364,11 @@ fn print_help() { [Main commands]: --help / --h - prints help, also works without any arguments - --d <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-s min_size = 1024] [-x allowed_extension = ""] [-l type_of_search = "hash"] [-o] [-f file_to_save = "results.txt"] [-delete = "aeo"] - search for duplicates files - --e <-i directories_to_search> [-e excluded_directories = ""] [-o] [-f file_to_save = "results.txt"] [-delete] - option to find and delete empty folders - --b <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-o] [-p number_of_files = 50] [-x allowed_extension = ""] [-f file_to_save = "results.txt"] - --y <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-o] [-f file_to_save = "results.txt"] [-delete] - search and delete empty files - --t <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-o] [-f file_to_save = "results.txt"] [-delete] - search for temporary files + --d <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-s min_size = 1024] [-x allowed_extension = ""] [-l type_of_search = "hash"] [-o] [-f file_to_save = "results.txt"] [-delete = "aeo"] - finds duplicates files + --e <-i directories_to_search> [-e excluded_directories = ""] [-o] [-f file_to_save = "results.txt"] [-delete] - finds empty folders + --b <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-o] [-p number_of_files = 50] [-x allowed_extension = ""] [-f file_to_save = "results.txt"] - finds biggest files + --y <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-o] [-f file_to_save = "results.txt"] [-delete] - finds empty files + --t <-i directories_to_search> [-e excluded_directories = ""] [-k excluded_items = ""] [-o] [-f file_to_save = "results.txt"] [-delete] - finds temporary files --version / --v - prints program name and version [Options]: diff --git a/czkawka_gui/src/main.rs b/czkawka_gui/src/main.rs index ec6a7e2..c5bc005 100644 --- a/czkawka_gui/src/main.rs +++ b/czkawka_gui/src/main.rs @@ -24,7 +24,7 @@ fn main() { for i in all_arguments { if i == "--v" || i == "--version" { - println!("Czkawka CLI {}", CZKAWKA_VERSION); + println!("Czkawka GUI {}", CZKAWKA_VERSION); process::exit(0); } } @@ -39,7 +39,7 @@ fn main() { //// Windows let main_window: gtk::Window = builder.get_object("main_window").unwrap(); main_window.show_all(); - main_window.set_title("Czkawka GTK GUI"); + main_window.set_title("Czkawka"); //////////////////////////////////////////////////////////////////////////////////////////////// //// States