复制目录但排除子文件夹

时间:2018-03-07 15:23:53

标签: 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)

我要做的是复制path2目录及其所有文件(目前正在执行)但排除path2中名为data的子文件夹之一}

我将如何做到这一点? This forum post does something similar但使用getFile排除隐藏文件

1 个答案:

答案 0 :(得分:0)

您应该考虑如何手动完成。您不能复制主文件夹。你打开它并选择你需要的一切。同样,我们用代码来做。首先,我们将所有文件夹和主文件夹的文件添加到数组中。

            '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。我还没有机会测试代码,但我希望它能带你走上正轨!