Практическое руководство. Копирование каталога в другой каталог в 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).