Если вы не возражаете против использования инструмента, ESEUTIL отлично сработал для меня.
Вы можете проверить эту запись в блоге , сравнивающую функции буферизованного и небуферизованного ввода-вывода и информацию о том, где можно получить ESEUTIL.
копирование текста из блога technet:
Итак, взглянув на приведенное выше определение буферизованного ввода-вывода, мы увидим, в чем заключаются проблемы с производительностью - в накладных расходах кеша файловой системы. Небуферизованный ввод / вывод (или необработанная копия файла) предпочтительнее при попытке скопировать большой файл из одного места в другое, когда мы не собираемся обращаться к исходному файлу после завершения копирования. Это позволит избежать издержек, связанных с кэшем файловой системы, и предотвратить эффективную очистку кэша файловой системы большими данными файла. Многие приложения достигают этого, вызывая CreateFile () для создания пустого файла назначения, затем используя функции ReadFile () и WriteFile () для передачи данных.
CreateFile () - функция CreateFile создает или открывает файл, поток файлов, каталог, физический диск, том, буфер консоли, стример, ресурс связи, почтовый ящик или именованный канал. Функция возвращает дескриптор, который можно использовать для доступа к объекту.
ReadFile () - функция ReadFile читает данные из файла и запускается с позиции, указанной указателем файла. Вы можете использовать эту функцию для синхронных и асинхронных операций.
WriteFile () - функция WriteFile записывает данные в файл в позиции, указанной указателем файла. Эта функция предназначена как для синхронной, так и для асинхронной работы.
Для копирования файлов по сети, которые очень велики, я выбрал утилиту копирования ESEUTIL, которая является одной из утилит базы данных, поставляемых с Exchange.