Program do sprawdzania nazw plików oraz usuwania niechcianych .txt

Witam!

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).

1 polubienie

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:

Dirty and fast

Program.txt (3,8 KB)

FileRemover.zip (3,1 KB)

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.

Potrzeba specjalnych bibliotek do tego?

Od razu po włączeniu wywala taki błąd

Wyjątek nieobsłużony: System.IndexOutOfRangeException: Indeks wykraczał poza granice tablicy.
w TxtRemover.Program.Main(String[] args)

No i to sprawa o ktorej nie pomyślałem. Wywalił się gdyż nie wpisałeś parametrów. Program ten wywołuje się z linii komend z 3 paranetrami.