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


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

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

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

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

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

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

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

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

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

  • Новое имя каталога содержит двоеточие (:) или косую черту (\ или /) (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

Ссылки

CopyDirectory