Частная задача - менять 2 файла местами.
Вообще говоря задача чуть глубже. Для начала создаёшь к примеру очередь (Схематично, как в тотале):
Код:
copy: D:\1.avi -> C:\Folder\1_new.avi
move: C:\Folder\xxx.avi -> D:\xxx.avi
move: D:\2.avi -> C:\Folder\2_new.avi
delete: D:\1.avi
Программа , если такое физически возможно, выполняет её.
Но тут ещё один ньюанс (требование). На 2м и 3м шаге примера происходит фактически "обмен" файлами. Если на дисках недостаточно места - то программа проверяет можно ли это сделать, перемещая файлы поблочно. Если можно - выполняет, если - нет, то придумай сам что она должна сделать.
Задача немного на сообразительность, немного на знание теории алгоритмов, напрямую связана с потребностями многих людей.. Впоследствии работу победителя можно преобразовать в плагин к проводнику, тоталу или фару. Но это уже совсем другая история.