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

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

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

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

Чтобы скопировать каталог в другой каталог

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

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

    Данный пример кода доступен также в качестве фрагмента кода IntelliSense. В окне выбора фрагмента кода он находится в разделе Файловая система — Обработка дисков, папок и файлов. Дополнительные сведения см. в разделе Практическое руководство. Вставка фрагментов в код (Visual Basic).

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

Исключение может появиться при следующих условиях.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

См. также

Задачи

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

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

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

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

Ссылки

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