@ -4,30 +4,37 @@ It is in very early development, so most of the functions aren't added and doesn
## Done
- Basic menu(need refactoring)
- Rich instruction with examples - CLI(`cargo run --bin czkawka_cli`)
- Duplicated file finding - CLI
- Including and excluding directories(absolute pathes)
- Option to remove files in different ways
- Fast(by size) or accurate(by hash) file checking
- Empty folders finding - CLI
- Advanced empty files finding(finds and remove folders which contains only empty folders)
- Option to remove all files
## TODO
- Comments - a lot of things should be described
- Tests
- Github CI
- Unit tests(if available)
- Duplicated file finding - CLI
- saving results to file
- support for * when excluding files and folders
- GUI(GTK)
- Removing empty folders
- Files with debug symbols
- Support for showing only duplicates with specific extension, name(Regex support needed)
- Maybe windows support, but this will need some refactoring in code
## Usage
For now only Linux(and probably also macOS) is supported
- Install requirements for GTK(minimum 3.16)
```
apt install -y libgtk-3-dev
```
- Download source
```
git clone github/czkawka // TODO
git clone https://github.com/qarmin/czkawka.git
cd czkawka
```
- Run GUI(Still WIP)
@ -35,8 +42,9 @@ cd czkawka
cargo run --bin czkawka_gui
```
- Run CLI
```
cargo run --bin czkawka_cli
```
## License
Czkawka is released under the terms of the GNU Lesser General Public License, version 2.1 or, at your option, any later version, as published by the Free Software Foundation.
letmutfolders_to_check: Vec<String>=Vec::with_capacity(1024*2);// This should be small enough too not see to big difference and big enough to store most of paths without needing to resize vector
@ -87,7 +95,7 @@ impl EmptyFolder {
folders_to_check.push(id.clone());
}
}else{
// Add root folders for finding
// Add folders searched before
foridin&self.empty_folder_list{
folders_checked.insert(
id.0.clone(),
@ -104,7 +112,7 @@ impl EmptyFolder {
letmutnext_folder: String;
while!folders_to_check.is_empty(){
current_folder=folders_to_check.pop().unwrap();
// Checked folder may be deleted so we assume that cannot removed folder be empty
// We need to check if parent of folder isn't also empty, because we wan't to delete only parent with two empty folders except this folders and at the end parent folder