Projekty

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.