Stačí zajistit, aby se relativně efektivně extrahovaly na tvé známé umístění pouze ty soubory, které jsou nutné (vybrané) pro tuto operaci - tedy ty, které user vybral ("známé umístění" potom bude např. adresář z kama běží tvůj program (fantazii se meze nekladou).
Nakonec nastavíš "jako objekt přesunu" ty extrahované soubory ve "známém umístění" a nebo předáš referenci na objekt drag&drop (ten vytvořený uživatelem) vlastnímu konstruktoru paralelního vlákna, to by dokonce nadále bylo možné pracovat s programem, zatímco ten by extrahoval soubory, zobrazoval uživateli procentuální průběh a podobné vtipy.
A teď to nejlepší, časová náročnost je téměř totožná jako samotná extrakce - tedy v případě, že extrahováno je na totožný logický disk (přepisujou se jen odkazy v tabulce FAT), v horším případě (jiného disku, oddílu...) by se kopírovaly pouze uživatelem navolené soubory.
Otázkou je jestli to celé stojí za tu námahu (v porovnání s přínosem).