Как исправить скопированное имя папки

#vb.net #directory

#vb.net #каталог

Вопрос:

У меня есть приложение на vb, которое копирует папки и их вложенную папку, которая работает должным образом. Моя проблема в том, что копируется неправильное имя папки копируемой папки.

Например, если я скопирую папку в этом месте: C:UsersDocumentsSample_Folder Выходное скопированное имя папки будет «Documents».

C:UsersDocumentsSample_FolderSample_Folder_2 Выходное скопированное имя папки будет «Sample_Folder».

 Private Sub btnCopy_Click(sender As Object, e As EventArgs) Handles btnCopy.Click
    Dim SourcePath As String = txtBrowse.Text
    Dim DestinationPath As String = "C:Users1000258123DesktopNEW"

    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)
    MsgBox("Copy Successful")

End Sub
  

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

1. «Моя проблема в том, что копируется неправильное имя копируемой папки». — с моей точки зрения, это так. если вы хотите использовать имя родительской папки копируемой папки, вам придется написать код для извлечения имени родительской папки. Я полагаю, вы можете использовать Directory. getParent .

2.Вам не нужно вызывать, Path.GetDirectoryName если SourcePath это уже путь к каталогу. Просто используйте Path.GetFileName(SourcePath) и объедините его с путем назначения, как вы уже делаете, и все должно быть готово.