Robocopy - лучший надежный и многофункциональный способ пакетного копирования файлов в Windows. Однако это инструмент командной строки.
Я ищу библиотеку / API, с которыми я мог бы сделать то же самое в своей программе. Я попытался использовать Process.Start (), но затем мне нужно захватить и проанализировать stdout для индикатора выполнения и нет возможности перезаписать поведение.
Например, исключить файловую базу по функции делегата; переименовать файл, если он старше; (повторно) начать копирование на основе некоторых событий.
Я полагаю, что копирование, копирование, рекурсивное копирование и т. д. Должно быть наиболее частым изобретением программистов колеса. Есть ли какой-нибудь API / библиотека, которую я пропустил?





Кажется, есть кое-что, что ставит на него графический интерфейс, например Синхронизация изображений и файлов в Windows Vista и XP с помощью Microsoft SyncToy (форум здесь) и Обзор служебных программ - графический интерфейс Robocopy. Я еще не нашел ни API, ни того, предоставляет ли Robocopy элемент управления в стиле ActiveX.
Редактировать: довольно большое онлайн-описание Робокопия что-то говорит о
Robocopy 'Jobs' and the 'MOnitor source' option provide an alternative to setting up a Scheduled Task to run a batchfile with a RoboCopy command.
Может помочь. Может не.
Спасибо за ответы, и после дополнительных исследований я считаю, что API не существует.
Максимальная степень повторного использования функции из Robocopy - это форк дочернего процесса с аргументами командной строки.
Я понимаю, что это очень старый пост, но на всякий случай кто-то наткнется на него ...
Я написал обертку для robocopy на C# под названием RoboSharp. Он делает именно то, что изначально запрашивал OP.