'Directory.GetFiles | Get only the specific file

I want to copy a specific file only but it copies all files in the directory. Is there any way to achieve it?

here is my code:

    Dim dir As DirectoryInfo = New DirectoryInfo("\\SERVER-PC\BrokerDatabase\BrokerDatabase\Attachments")

    For Each fi As FileInfo In dir.GetFiles()
        fi.CopyTo("D:\" + fi.Name)
    Next


Solution 1:[1]

It copies all files in the directory because you're looping the .CopyTo without any condition. If the filename of the file you are looking for is static, add a condition with it so it won't copy all the files.

 Dim dir As DirectoryInfo = New DirectoryInfo("\\SERVER-PC\BrokerDatabase\BrokerDatabase\Attachments")

    For Each fi As FileInfo In dir.GetFiles()
        If fi.Name = "FileToBeCopied.txt" Then
            fi.CopyTo("D:\" + fi.Name)
        End If

    Next

Solution 2:[2]

Another (fancy) way,

Dim allSeries As IEnumerable(Of String) =
        Directory.EnumerateFiles(root, file, SearchOption.AllDirectories)
    If allSeries.Count = 0 Then
        MsgBox("not found.")
    End If

where "root" is a String with the file path, and "file" is a String with the file name

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 casa
Solution 2 Marios