Метод 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 |
Да |
Веб-узел |
Да |
Разрешения
Могут потребоваться следующие разрешения.
Разрешение |
Описание |
---|---|
Управляет доступом к файлам и папкам. Связанное перечисление: Unrestricted. |
|
Определяет разрешения, относящиеся к пользовательским интерфейсам и буферу обмена. Связанное перечисление: SafeSubWindows. |
Дополнительные сведения см. в разделах Управление доступом для кода и Запрос разрешений.
См. также
Задачи
Практическое руководство. Получение коллекции содержащихся в каталоге файлов в Visual Basic
Практическое руководство. Перемещение каталога в Visual Basic
Практическое руководство. Перемещение содержимого каталога в Visual Basic
Практическое руководство. Анализ путей к файлам в Visual Basic
Практическое руководство. Определение абсолютного пути к файлу в Visual Basic
Практическое руководство. Определение наличия каталога в Visual Basic