Problem wygląda następująco:
Mam duży katalog (ponad 20 tys zdjęć) JPEG i do każdej grafiki jest utworzony plik .txt o takiej samej nazwie jak obraz.
Z katalogu usunąłem kilka tysięcy zdjęć i chciałbym aby zostały pliki .txt tylko tych zdjęć których nie usunąłem.
Ma ktoś jakiś pomysł?
Nie wydaje mi się, żebyś znalazł gotowy program spełniający dokładnie twoje oczekiwania, chociaż możesz popróbować z programami wyszukującymi duplikaty plików i ustawić odpowiedni filtr (tylko nazwa), wyszukać pliki posiadające takie same nazwy (ale inne rozszerzenie) i wykasować pozostałe (czyli sierotki). Ewentualnie pokombinować z jakimś skryptem w shellu (jeżeli pracujesz na linuksie) lub w powershellu/command line’ie (jeżeli w oknach).
Przy kawie napisałem program który przejrzy wskazany katalog, zrobi listę plików z danym rozszerzeniem i usunie te pliki które nie mają swoich odpowiedników z drugiej listy z drugiego rozszerzenia jakie się podaje w parametrach. Program brzydki i absolutnie nie produkcyjny, no ale cóż - spełnia proste zadanie, a nie jest częścią dużego systemu. Sam bym taki kawałek na code review usunął, ale teraz zrobi robotę. Napisałem sam algorytm, potem dopisałem komunikaty co już zaciemniło kod, a na koniec dałem goto, żeby wyjść w przypadku błędu. teoretycznie można by rozbić to na klasy, odpowiedzialności i było by ładnie inżyniersko, ale robił bym to 2-3h a nie 15 minut, więc proszę hejterów o odpuszczenie - siedzę w branży ponad 10 lat i wiem, że czasami dobry kod to taki co działa, a czasami trzeba zrobić inżynierską kobyłę.
W twoim przypadku będzie to wywołanie:
FileRemover.exe <folder> txt jpg
Można odczytać pomoc
FileRemover.exe -h
Żeby nie było, że wciskam wirusa daje kod źródłowy niżej:
Sugeruje zrobić kopie zapasową folderu przed testowaniem programu. Testowałem go na małych zbiorach, tak samo na błędne parametry ale zawsze może coś wyjść na docelowym środowisku.