Nie wiem o co dokładnie ci chodzi, ale gdybym miał zrobić coś takiego to otwierał bym pliki w trybie binarnym. Plik sksorowany musi zawierać informacje o rozszerzeniu wynikowego pliku. Można to zrobić tworząc nagłówek pliku. Sksorowany plik zapisywałbym z moim własnym rozszerzeniem np. xor, dla odróżnienia od innych plików. Kolejna sprawa to jak chcesz udostępnić użytkownikowi możliwość wyboru pliku. Można sprawić, że użytkownik poda np. "*.jpg" i na tej podstawie program sksoruje pliki jpg ale tylko jeżeli sam to obsłużysz prawidłowo. W zależności od tego w czym programujesz można zastosować inne rozwiązania. Myślę, że w Qt Creatorze byłoby to najłatwiejsze. Pozyskanie listy plików wyglądałoby mniej więcej tak:
QDir dir(path);
QStringList filterList = { "*.jpg", "*.gif" };
list = dir.entryInfoList(filterList, QDir::Files, QDir::Name);
Oczywiście w C++ są też dostępne funkcje umożliwiające utworzenie listy plików o danym rozszerzeniu w podanej lokalizacji ale to będzie wymagało napisania przez ciebie większego kawałka kodu i będzie też zależało od tego pod jaki system operacyjny piszesz (pewnie Windows).