FileFinder
Projekt niedokończony. W aplikacji brakuje jeszcze wielu opcji, USNMonitor nie działa do końca poprawnie i jest zasobożerny. Może kiedyś wrócę do tego projektu i go dokończę.
1. O projekcie
Indeksowanie plików w Eksploratorze Windows jest zepsute. Jak wejdę na "Ten komputer" i wyszukam nazwę pliku, wyszukiwanie trwa wieczność. Chciałem zrobić coś na wzór uproszczonego Everything z ładniejszym UI.
FileFinder korzysta bezpośrednio z mechanizmu NTFS USN Journal (Update Sequence Number Journal), co pozwala na błyskawiczne indeksowanie i wyszukiwanie plików bez obciążania systemu ciągłym skanowaniem dysku.
2. Kluczowe Funkcje
- Błyskawiczne Indeksowanie: Wykorzystuje niskopoziomowe API NTFS do szybkiego mapowania struktury plików.
- Monitorowanie w Czasie Rzeczywistym: Automatycznie śledzi zmiany w systemie plików (nowe pliki, zmiany nazw, usunięcia) dzięki USN Journal.
- Zaawansowane Wyszukiwanie: Filtrowanie po nazwie i rozszerzeniach plików.
- Nowoczesny UI: Przejrzysty interfejs zbudowany w technologii WPF.
- Menu Kontekstowe: Szybkie akcje na wynikach wyszukiwania (otwórz, kopiuj ścieżkę, pokaż w eksploratorze).
3. Szczegóły Techniczne
Integracja z USN Journal
Aplikacja komunikuje się bezpośrednio ze sterownikiem systemu plików NTFS, używając kodów sterujących (FSCTL):
FSCTL_ENUM_USN_DATA: Do wykonania początkowego, pełnego skanu dysku.FSCTL_READ_USN_JOURNAL: Do nasłuchiwania zmian w czasie rzeczywistym.
Struktura Bazy Danych
Aby zapewnić optymalną wydajność, FileFinder używa dwóch oddzielnych tabel w lokalnej bazie danych SQLite:
- files.db: Przechowuje informacje o plikach (FRN, ParentFRN, Nazwa).
- folders.db: Przechowuje strukturę katalogów, co pozwala na szybkie odtwarzanie pełnych ścieżek.
Projekt jest przykładem zaawansowanego programowania systemowego na platformę Windows, łączącego wydajność niskopoziomowych API z wygodą interfejsu .NET/WPF.