user1095332
user1095332

Reputation: 442

How search for a folder and copy the folder in visual basic.net?

I can't find how to search for a folder (directory) that contains a string and copy all the folders (directory) that contain that string to another directory. So you search for the name of the directory, not the files in the directory. For example: 'KTNPRK' in E:\ gives: E:\KTNPRK1, E:\AZNKTNPR76, etc...

Upvotes: 1

Views: 5394

Answers (1)

competent_tech
competent_tech

Reputation: 44971

Here is an example of how to move the directories:

    Dim sSourcePath As String
    Dim sDestPath As String
    Dim sTextToFind As String

    sSourcePath = "D:\Temp"
    sDestPath = "D:\Temp1"
    sTextToFind = "test"

    For Each sDir In Directory.GetDirectories(sSourcePath, "*" & sTextToFind & "*")
        Directory.Move(sDir, Path.Combine(sDestPath, Path.GetFileName(sDir)))
    Next

In order to copy all of the files in the folders, the loop can be changed to:

        Dim sFullDestDir As String

        sFullDestDir = Path.Combine(sDestPath, IO.Path.GetFileName(sFullSourceDir))

        ' Create the directory if it doesn't exist
        If Not Directory.Exists(sFullDestDir) Then
            Directory.CreateDirectory(sFullDestDir)
        End If

        ' Copy the files in the directory
        ' If subfolders are to be copied, this logic can be turned into a recursive method.
        For Each sFileName As String In Directory.GetFiles(sFullSourceDir)
            File.Copy(sFileName, Path.Combine(sFullDestDir, IO.Path.GetFileName(sFileName)))
        Next

Upvotes: 1

Related Questions