Profesjonalne narzędzie do porównywania folderów dla Windows
Zaawansowany program w Pythonie do analizy i porównywania zawartości folderów z wieloma funkcjami ułatwiającymi pracę z dużymi zbiorami plików.
- Funkcje
- Status implementacji
- Szybki start
- Użytkowanie
- Konfiguracja
- Generowane pliki
- Zależności
- Skrypty instalacyjne
- Rozwiązywanie problemów
- Wkład w rozwój
- TODO / Przyszłe funkcje
- Dokładne porównanie plików - znajdowanie różnic w nazwach, rozmiarach i datach modyfikacji
- Rekurencyjne przeszukiwanie - analiza całej struktury folderów i podfolderów
- Grupowanie według rozszerzeń - przejrzysta organizacja wyników według typów plików
- Weryfikacja sum kontrolnych - SHA-256 lub MD5 dla sprawdzania integralności plików
- Wielowątkowość - równoległe obliczanie hashów dla maksymalnej wydajności
- Wznowienie przerwanych operacji - kontynuacja skanowania po przerwaniu
- Eksport do TXT i CSV - raporty w formatach łatwych do analizy
- Podsumowanie wykonawcze - kluczowe informacje na początku raportu
- Statystyki typów plików - analiza rozszerzeń i rozmiarów
- Całkowite rozmiary folderów - porównanie zajętości przestrzeni
- Ignorowanie plików - pomijanie określonych rozszerzeń (.tmp, .log, itp.)
- Ukryte pliki i foldery - opcja ignorowania plików systemowych
- Zapamiętywanie ustawień - automatyczne zapisywanie ostatnich ścieżek i konfiguracji
- Kolorowe wyświetlanie - przejrzysty interfejs z oznaczeniem różnic kolorami
- Windows 10/11
- Python 3.7 lub nowszy (Pobierz Python)
-
Pobierz repozytorium
git clone https://github.com/hackwell-eu/folder-compare-tool.git cd folder-compare-tool -
Uruchom instalację
setup.bat
-
Gotowe! Uruchom program
start.bat
# 1. Utwórz wirtualne środowisko
python -m venv venv
# 2. Aktywuj środowisko
venv\Scripts\activate
# 3. Zainstaluj zależności
pip install -r requirements.txt
# 4. Uruchom program
python porownaj_foldery.py- Wielowątkowość: zaimplementowana (użycie
ThreadPoolExecutorwporownaj_foldery.pydla obliczania hashy). - Wznowienie przerwanych operacji: zaimplementowane (zapis/odczyt postępu w
comparison_progress.json). - Sumy kontrolne: obsługiwane
sha256imd5(konfigurowalne w ustawieniach). - Eksport: TXT i CSV są obsługiwane przez program.
- GUI: brak (wersja konsolowa). Projekt zawiera oddzielne repo dla wersji Linux/GUI (tylko dla windows).
Uwaga: powyższe funkcje zostały zweryfikowane w pliku
porownaj_foldery.py.
- Plik
requirements.txtzawiera używane biblioteki. W repo znajdują się m.in.:colorama==0.4.6(kolorowanie konsoli)
Instalacja zależności:
venv\Scripts\activate
pip install -r requirements.txtJeżeli używasz PowerShell i masz problemy z uruchomieniem skryptów, wykonaj:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserUwaga: setup.bat instaluje obecnie jedynie pakiet colorama. Aby zainstalować wszystkie zadeklarowane zależności uruchom:
pip install -r requirements.txtPrzykładowy fragment raportu TXT:
📊 STATYSTYKI OGÓLNE:
Folder 1: 1,247 plików, rozmiar: 4.23 GB
Folder 2: 1,189 plików, rozmiar: 4.01 GB
Różnica rozmiaru: 225.87 MB
📈 PODSUMOWANIE RÓŻNIC:
• Plików tylko w folderze 1: 58
• Plików tylko w folderze 2: 0
• Plików wspólnych: 1,189
setup.bat— tworzy wirtualne środowiskovenv, instaluje zależności (colorama) i wyświetla instrukcję uruchomienia.start.bat— aktywuje środowisko i uruchamiaporownaj_foldery.py.
Jeżeli używasz PowerShell i masz problemy z uruchomieniem skryptów, wykonaj:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser- Uruchom program przez
start.bat - Podaj ścieżki do dwóch folderów
- Wybierz opcje porównania
- Odczekaj na zakończenie analizy
- Wyniki zostaną zapisane w pliku
wynik_porownania-YYYY-MM-DD-XX.txt
Podaj ścieżkę do pierwszego folderu: C:\Backup\Stary
Podaj ścieżkę do drugiego folderu: C:\Backup\Nowy
Czy sprawdzić zawartość plików? (t/n): t
Ignorować ukryte pliki i foldery? (t/n): t
Jak chcesz wyświetlić wyniki?
1 - Zapisać do pliku i wyświetlić na ekranie
2 - Tylko zapisać do pliku
Wybierz opcję (1/2): 1
Czy eksportować także do CSV? (t/n): t
┌────────────────────────────────────────────────────────────────────┐
│ PODSUMOWANIE WYKONAWCZE │
└────────────────────────────────────────────────────────────────────┘
📊 STATYSTYKI OGÓLNE:
Folder 1: 1,247 plików, rozmiar: 4.23 GB
Folder 2: 1,189 plików, rozmiar: 4.01 GB
Różnica rozmiaru: 225.87 MB
📈 PODSUMOWANIE RÓŻNIC:
• Plików tylko w folderze 1: 58
• Plików tylko w folderze 2: 0
• Plików wspólnych: 1,189
📑 TYPY PLIKÓW - FOLDER 1:
.jpg → 523 plików (2.15 GB)
.txt → 312 plików (45.23 MB)
.pdf → 189 plików (1.89 GB)
.docx → 87 plików (123.45 MB)
.xlsx → 64 plików (67.89 MB)
Program automatycznie tworzy plik folder_compare_config.json z ustawieniami:
{
"last_folder1": "C:\\Projekty\\Folder1",
"last_folder2": "D:\\Backup\\Folder1",
"ignored_extensions": [".tmp", ".log", ".cache"],
"hash_algorithm": "sha256"
}last_folder1/2- ostatnio używane ścieżkiignored_extensions- ignorowane rozszerzenia plikówhash_algorithm- algorytm hashowania (sha256lubmd5)
wynik_porownania-YYYY-MM-DD-XX.txt- szczegółowy raport w formacie tekstowym- Automatyczna numeracja plików z tego samego dnia
wynik_porownania-YYYY-MM-DD-XX.csv- dane w formacie Excel- Łatwa analiza w arkuszach kalkulacyjnych
folder_compare_config.json- zapisane ustawieniacomparison_progress.json- postęp do wznowienia (usuwany po zakończeniu)
Rozwiązanie:
- Zainstaluj Python z python.org
- Podczas instalacji zaznacz ☑️ "Add Python to PATH"
- Uruchom ponownie komputer
Rozwiązanie:
venv\Scripts\activate
pip install coloramaInformacja: Program działa również bez kolorów. Wszystkie funkcje są dostępne.
Rozwiązanie:
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUserChętnie przyjmę pull requesty! W przypadku większych zmian, proszę najpierw otwórz issue, aby omówić planowane zmiany.
- Fork repozytorium
- Stwórz branch z funkcją (
git checkout -b feature/NowaFunkcja) - Commituj zmiany (
git commit -m 'Dodaj nową funkcję') - Push do brancha (
git push origin feature/NowaFunkcja) - Otwórz Pull Request
- Synchronizacja folderów na podstawie porównania
- Eksport do HTML z interaktywnym raportem
- Porównywanie z archiwami ZIP
Ten projekt jest licencjonowany na licencji MIT - zobacz plik LICENSE dla szczegółów.
Miłosz Smoliński
- GitHub: @Mily260