Vb.net 复制目录但排除子文件夹

Vb.net 复制目录但排除子文件夹,vb.net,Vb.net,我目前的解决方案是,我可以通过一个文件夹复制到另一个目录 My.Computer.FileSystem.CopyDirectory( "C:\Users\myname\path1\path2", "C:\Users\myname\path1\path2\path3", Microsoft.VisualBasic.FileIO.UIOption.AllDialogs, Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing) 我要做的是复制pa

我目前的解决方案是,我可以通过一个文件夹复制到另一个目录

My.Computer.FileSystem.CopyDirectory(
"C:\Users\myname\path1\path2",
"C:\Users\myname\path1\path2\path3",
Microsoft.VisualBasic.FileIO.UIOption.AllDialogs,
Microsoft.VisualBasic.FileIO.UICancelOption.DoNothing)
我要做的是复制
path2
目录及其所有文件(它当前正在复制),但不包括
path2
中的一个子文件夹,该文件夹称为
数据


我该怎么做呢?但是使用
getFile
来排除隐藏的文件

你应该考虑如何手动操作。您不复制主文件夹。您可以打开它并选择所有需要的内容。类似地,我们用代码来实现这一点。首先,我们将所有文件夹和主文件夹的文件添加到一个数组中

            'copy all folders, exclude the data folder
            Dim Paths As New ArrayList
            Paths.AddRange(Directory.GetDirectories("C:\TestDirectory1"))
            For Each Item As String In Paths
                If Not Item.ToString.Contains("\data\") Then
                    My.Computer.FileSystem.CopyDirectory(Item, "C:\TestDirectory2", True)
                End If
            Next
            'copy all files of the main folder
            Dim Files As New ArrayList
            Files.AddRange(Directory.GetFiles("C:\TestDirectory1"))
            For Each Item As String In Paths
                My.Computer.FileSystem.CopyFile(Item, "C:\TestDirectory2", True)
            Next

我们不需要\data\文件夹,因此不会将其添加到ArrayList中。我还没有机会测试代码,但我希望它能让你走上正轨

谢谢,这似乎是一个可行的解决方案,我能理解你的理论。在测试代码时,出现一个错误,显示“找不到文件夹”信息“”。这是一个额外的文件夹,在“directory1”中,我想在“data”文件夹旁边复制它,我不想在“data”文件夹中复制它。我不想在第一个实例中说明第二个目录。不过,我有一个新问题,使用您的解决方案,它会复制“TestDirectory1”中文件夹中的文件,并将其放置到“TestDirectory2”中,而不排除“data”文件夹或复制“TestDirectory1”中的根文件