Directory.GetFiles |仅获取特定文件

Directory.GetFiles | Get only the specific file

我只想复制一个特定的文件,但它复制了目录中的所有文件。有什么办法可以实现吗?

这是我的代码:

    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

它会复制目录中的所有文件,因为您正在无条件地循环 .CopyTo。如果您要查找的文件的文件名是静态的,请为其添加一个条件,这样它就不会复制所有文件。

 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

另一种(奇特的)方式,

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

其中“root”是一个包含文件路径的字符串,“file”是一个包含文件名的字符串