Wpis z mikrobloga

#programowanie #csharp

Piszę narzędzie które ma mi usuwać puste poddrzewa katalogów i powtórki plików.
Idealna do tego wydaje się haszTablica która przy próbie dodania sprawdza czy już jakiś plik nie siedzi w tym miejscu i usuwa ten co miał zostać dodany. (w końcu jest powtórką) przy czym nasza tablica haszowana nie może się ani razu pomylić bo możemy coś stracić, jakieś protipy jak to ugryźć?
  • 7
@wytrzzeszcz:

2 idealnie takie same zdjęcia papieża na dysku. poprostu plik o tej samej zawartości

Jeśli dobrze rozumiem to coś takiego nie będzie szybkie, nawet sam windows nie indeksuje domyślnie zawartości folderów.
Największym problemem dla mnie byłby odpowiedni algorytm #!$%@?ący zawartość binarną pliku, a i tak ryzyko duplikatu będzie bardzo wysokie, wystarczy zmienić 1 bit i wszystko idzie się #!$%@?ć. Plus jest mała szansa że różne pliki dadzą ten sam hash,
@Luntri: no i git, że 1 bit wszystko zmienia, o to tu chyba właśnie chodzi, żeby znaleźć duplikaty i się ich pozbyć / zrobić linki symboliczne.

Ja bym robił takimi sitami coraz bardziej dokładnymi. W pierwszej kolejności po rozmiarze (i odsiewałbym pliki np. < 1 MB), potem mając kubełki z listą potencjalnie takich samych plików, grupowałbym po jakimś szybkim hashu, a na koniec bajt po bajcie, niestety.