Копирование папки и ее содержимого в vb.net

#vb.net

#vb.net

Вопрос:

Я хочу скопировать определенную папку и ее содержимое с помощью vb.net все методы, которые я нашел, просто копируют содержимое указанной папки, но не папку в целом. Я хочу, чтобы папка, к которой ведет путь, была скопирована полностью, а не только содержимое.На данный момент у меня есть этот код:

  Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory("C:UsersMaxDesktoptest" amp; sender.name, "C:UsersMaxDesktoptest2")
  

Комментарии:

1. msdn.microsoft.com/en-us/library/…

2. По-прежнему копируется только содержимое папки, а не сама папка содержимое. Если только я как-то неправильно не использую эту функцию.

Ответ №1:

Вы не можете просто скопировать каталог и все его содержимое с помощью одной строки кода. Однако вы можете «вырезать и вставить» каталог с:

 Directory.Move("C:UsersMaxDesktoptest" amp; sender.name, "C:UsersMaxDesktoptest2" amp; sender.name)
  

Для копирования вам нужно создать новую папку с тем же именем в каталоге назначения, а затем скопировать в нее содержимое:

 Dim SourcePath As String = "C:UsersMaxDesktoptest" amp; sender.name
Dim DestinationPath As String = "C:UsersMaxDesktoptest2"
Dim newDirectory As String = System.IO.Path.Combine(DestinationPath, Path.GetFileName(Path.GetDirectoryName(SourcePath)))
If Not (Directory.Exists(newDirectory)) Then
     Directory.CreateDirectory(newDirectory)
End If
Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(SourcePath, newDirectory)
  

Комментарии:

1. относится ли это и к подкаталогам этого каталога?

2. Да, он копирует все файлы и папки.