将子目录复制到目录

art*_*k21 0 vb.net directory copy visual-studio-2010

引用此问题/代码:

如何在.NET中复制文件夹和所有子文件夹和文件?

我正在尝试将一小撮子目录复制到另一个目录.我想要更新此代码:

Dim fso As System.Object = New System.Object
    fso = CreateObject("scripting.filesystemobject")

    fso.copyfolder(sour, dest)
Run Code Online (Sandbox Code Playgroud)

但是我收到了这个错误:

System.IO.DirectoryNotFoundException:找不到路径'C:\ Temp\Summer2011\Newfolder\Copy of New Text Document.txt'的一部分.System.IO.File.Copy.Copy(String sourceFileName,String destFileName)的System.IO.File.InternalCopy(String sourceFileName,String destFileName,Boolean overwrite)中的System.IO._E_Error.WinIOError(Int32 errorCode,String maybeFullPath). .等等

有了这个.NET版本

 Public Overrides Sub OnClick()

            Dim sour As String = "C:\Temp243"
            Dim dest As String = "C:\Temp\Summer2011\"

            CopyDirectory(sour, dest)

    End Sub



    Private Sub CopyDirectory(ByVal SourcePath As String, ByVal DestPath As String)

                     If Directory.Exists(DestPath) Then
                Directory.CreateDirectory(DestPath)
            End If

            For Each File As String In Directory.GetFiles(SourcePath)
                Dim dest As String = IO.Path.Combine(DestPath, IO.Path.GetFileName(File))
                IO.File.Copy(File, dest) '<<<ERROR HERE

            Next

            For Each folder As String In Directory.GetDirectories(SourcePath)
                Dim dd As String = IO.Path.Combine(DestPath, IO.Path.GetFileName(folder))
                CopyDirectory(folder, dd)
            Next

    End Sub
Run Code Online (Sandbox Code Playgroud)

是否有更简单的方法来执行此操作,使用较少的代码行,如fso As System.Object版本?另外,我导入了System.IO但是File.Copy和Directory.GetFiles没有蓝色,这可能是问题吗?我已将系统加载为参考.

谢谢!

jda*_*ies 8

尝试使用Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory方法.

Microsoft.VisualBasic.FileIO.FileSystem.CopyDirectory(sourceDirectory, destinationDirectory)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.