Поделиться через


Метод My.Computer.FileSystem.CopyDirectory

Обновлен: Ноябрь 2007

Копирует каталог в другой каталог.

' Usage
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,overwrite)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI)
My.Computer.FileSystem.CopyDirectory(sourceDirectoryName ,destinationDirectoryName ,showUI ,onUserCancel)
' Declaration
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String _
)
' -or-
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String, _
   ByVal overwrite As Boolean _
)
' -or-
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String, _
   ByVal showUI As UIOption _
)
' -or-
Public Sub CopyDirectory( _
   ByVal sourceDirectoryName As String, _
   ByVal destinationDirectoryName As String, _
   ByVal showUI As UIOption, _
   ByVal onUserCancel As UICancelOption _
)

Параметры

  • sourceDirectoryName
    String. Каталог, подлежащий копированию. Обязательный.

  • destinationDirectoryName
    String. Расположение, в которое должен быть скопирован каталог. Обязательный.

  • overwrite
    Boolean. Указывает, выполнять или не выполнять перезапись существующих файлов. По умолчанию используется значение False. Обязательный.

  • showUI
    UIOption. Указывает, следует ли осуществлять визуальное отслеживание хода выполнения операции. По умолчанию используется значение UIOption.OnlyErrorDialogs. Обязательный.

  • onUserCancel
    UICancelOption. Определяет действия, которые должны выполняться, если во время операции пользователь нажмет кнопку Отмена. По умолчанию используется значение ThrowException. Обязательный.

Исключения

При следующих условиях возможно возникновение исключения.

  • Новое имя каталога содержит двоеточие (:) или косую черту (\ или /) (ArgumentException).

  • Путь является недопустимым по одной из следующих причин: строка имеет нулевую длину; строка содержит только пробел; строка содержит недопустимые символы; строка является путем устройства (начинается с \\.\) (ArgumentException).

  • Путь является недопустимым, поскольку он равен Nothing (ArgumentNullException).

  • Параметр destinationDirectoryName равен Nothing или является пустой строкой (ArgumentNullException).

  • Исходный каталог не существует (DirectoryNotFoundException).

  • Исходный каталог является корневым (IOException).

  • Объединенный путь указывает на существующий файл (IOException).

  • Исходный и конечный пути совпадают (IOException).

  • Параметр ShowUI имеет значение UIOption.AllDialogs, а пользователь отменил операцию, или один или несколько файлов в каталоге не могут быть скопированы (OperationCanceledException).

  • Операция является циклической (InvalidOperationException).

  • Путь содержит двоеточие (:) (NotSupportedException).

  • Длина пути превышает максимальную длину, определенную в системе (PathTooLongException).

  • Имя файла или папки в пути содержит двоеточие (:) или имеет недопустимый формат (NotSupportedException).

  • У пользователя нет необходимых разрешений для просмотра пути (SecurityException).

  • Конечный файл существует, но к нему нет доступа (UnauthorizedAccessException).

Заметки

Этот метод копирует содержимое каталога, а также сам каталог. Если целевой каталог не существует, он будет создан. Если каталог с тем же именем существует в целевом местоположении, содержимое двух каталогов объединяется. Можно указать новое имя каталога во время выполнения операции.

При копировании файлов в каталоге могут возникать исключения, например, если при объединении каталогов тот или иной файл уже существует в каталоге, а параметру overwrite присвоено значение False. Когда вызываются такие исключения, они объединяются в одно исключение. В его свойстве Data содержатся записи в форме IDictionary, где путь к файлу или каталогу является ключом, а сообщение исключения содержится в соответствующем значении. For…Each позволяет выполнить перечисление записей.

Задачи

В следующей таблице приведены примеры задач, в которых используется метод My.Computer.FileSystem.CopyDirectory.

To

См. разделы

Копирование каталога

Практическое руководство. Копирование каталога в другой каталог в Visual Basic

Пример

В следующем примере кода выполняется копирование каталога TestDirectory1 в каталог TestDirectory2 с заменой существующих файлов.

My.Computer.FileSystem.CopyDirectory("C:\TestDirectory1", "C:\TestDirectory2", True)

Вместо C:\TestDirectory1 и C:\TestDirectory2 укажите путь и имя каталога, который необходимо скопировать, а также расположение, в которое нужно скопировать этот каталог.

Требования

Пространство имен:Microsoft.VisualBasic.MyServices

Класс:FileSystemProxy (предоставляет доступ к FileSystem)

Сборка: библиотека времени выполнения Visual Basic (в Microsoft.VisualBasic.dll)

Доступность по типу проекта

Тип проекта

Доступность

Приложение Windows

Да

Библиотека классов

Да

Консольное приложение

Да

Библиотека элементов управления Windows

Да

Библиотека веб-элементов управления

Да

Служба Windows

Да

Веб-узел

Да

Разрешения

Могут потребоваться следующие разрешения.

Разрешение

Описание

FileIOPermission

Управляет доступом к файлам и папкам. Связанное перечисление: Unrestricted.

UIPermission

Определяет разрешения, относящиеся к пользовательским интерфейсам и буферу обмена. Связанное перечисление: SafeSubWindows.

Дополнительные сведения см. в разделах Управление доступом для кода и Запрос разрешений.

См. также

Задачи

Практическое руководство. Получение коллекции содержащихся в каталоге файлов в Visual Basic

Практическое руководство. Перемещение каталога в Visual Basic

Практическое руководство. Перемещение содержимого каталога в Visual Basic

Практическое руководство. Анализ путей к файлам в Visual Basic

Практическое руководство. Определение абсолютного пути к файлу в Visual Basic

Практическое руководство. Определение наличия каталога в Visual Basic

Ссылки

Объект My.Computer.FileSystem

Перечисление UICancelOption