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

Используйте метод CopyDirectory для копирования каталога в другой каталог. Этот метод копирует и содержимое каталога, и сам каталог. Если целевой каталог не существует, он будет создан. Если каталог с тем же именем уже существует в целевом расположении, а параметр overwrite имеет значение False, содержимое двух каталогов будут объединено. Во время операции можно указать новое имя для каталога.

При копировании файлов в каталоге могут возникать исключения, вызываемые определенным файлом, например файлом, существующим во время слияния, если параметр overwrite имеет значение False. Если такие исключения возникают, они объединяются в общее исключение. Свойство Data этого исключения содержит записи, в которых путь к файлу и каталогу является ключом, а соответствующее значение содержит сведения о конкретном исключении.

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

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

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

    Этот пример кода также доступен в качестве фрагмента кода IntelliSense. В средстве выбора фрагментов кода он находится в разделе Файловая система: обработка дисков, папок и файлов. Для получения дополнительной информации см. Code Snippets.

Отказоустойчивость

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

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

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

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

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

  • Целевой каталог не существует (DirectoryNotFoundException).

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

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

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

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

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

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

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

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

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

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

См. также