Я работаю над консольной программой, и мне нужно использовать MoveFile
/CopyFile
, чтобы разрешить перемещение и копирование файлов и каталогов (возможно, между томами). Проблема, конечно, в том, что копирование или перемещение каталога на другой том не работает с вышеупомянутыми функциями, потому что они не являются рекурсивными.
SHFileOperation
не подойдет, потому что это консольное приложение, и я использую варианты, которые позволяют отображать прогресс (MoveFileWithProgress
/CopyFileEx
), а SHFileOperation
использует графический интерфейс для отображения прогресса вместо консоли.
Я рассматривал возможность использования FindNextFile
, но даже тогда не смог найти ни одного примера кода для рекурсивного (Move|Copy)File
с FindNextFile
или каким-либо другим способом, что немного сбивает с толку, поскольку эта проблема должна возникать раньше.
Есть ли простой способ сделать это или мне нужно прибегнуть к изобретению велосипеда?
The MoveFile function will move (rename) either a file or a directory (including its children)
. Однако обратите внимание на это заявление об отказе от ответственности:If a file is moved across volumes, MoveFile does not move the security descriptor with the file
(также в MSDN). - person Eran Zimmerman Gonen   schedule 07.08.2012