Мой клас можно заменить двумя строчками и поместить их в QThread:
QDirIterator dirScan(someDir,fileMask, QDir::Files | QDir::System | QDir::Hidden | QDir::NoDotAndDotDot ,QDirIterator::Subdirectories);
while(dirScan.hasNext())filesList << dirScan.next();
Примечание что и в моем классе и в этом примере если маска файлов *.* то не будут копироваться файлы без расширения поэтому чтобы искать все файлы использовать надо * (может кто-то тоже на это не обратил внимание)