.NET: Как копировать файлы с помощью диалогового окна Windows «Копирование файлов» - PullRequest
3 голосов
/ 01 апреля 2010

.NET: Как скопировать файлы с помощью диалогового окна «Копирование файлов» Windows. Мне нужно массовое копирование нескольких файлов. Существует ли какая-либо библиотека / метод .NET 2.0, которая позволяет мне делать это кроссплатформенным образом, не вызывая специфичные для платформы Windows библиотеки.

Заранее спасибо.

Ответы [ 6 ]

12 голосов
/ 01 апреля 2010

SHFileOperation, оно хорошо поддерживается стандартной платформой .NET. Добавьте ссылку на Microsoft.VisualBasic.dll и используйте метод Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory () . Доступно несколько перегрузок, позволяющих контролировать внешний вид пользовательского интерфейса и способы обработки ошибок.

1 голос
/ 04 августа 2010

Google для IProgressDialog - это интерфейс, который предоставляет вам функции, которые вы запрашиваете

1 голос
/ 01 апреля 2010

Чтобы использовать «Диалог копирования файлов Windows», вам потребуется вызвать «Библиотеки, специфичные для платформы Windows».

0 голосов
/ 01 апреля 2010

В .NET вы можете создать свой собственный диалог.

Это не обязательно трудная задача, хотя:

  • Если у вас VS2005, распакуйте VS2005ImageLibrary.zip, расположенный по адресу C:\Program Files (x86)\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary в 64-битной системе или C:\Program Files\Microsoft Visual Studio 8\Common7\VS2005ImageLibrary в 32-битной системе.

  • После распаковки zip-файла появятся несколько анимированных GIF-файлов анимации диалога копирования файлов. Они также доступны в формате .AVI.

  • Выберите один из анимированных GIF-файлов.

  • Создать диалог с картинкой на нем. Присвойте GIF свойству image графического блока.

  • Добавьте метку под анимацией, чтобы указать, какой файл копируется.

  • Запустите операцию копирования файла, используя потоки, обновляя диалог по мере необходимости.

0 голосов
/ 01 апреля 2010

Возможно, вы найдете необходимые функции в Windows API Code Pack

Если все остальное терпит неудачу, это может работать ужасно: создайте невидимое окно проводника Windows и манипулируйте им, чтобы запустить процесс копирования.

0 голосов
/ 01 апреля 2010

Проблема в том, что это на самом деле не «Диалог копирования файлов Windows», а диалог Проводника Итак, нужно найти способ программно управлять проводником. (Возможно через COM или WMI)

...