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”是一个包含文件名的字符串
我只想复制一个特定的文件,但它复制了目录中的所有文件。有什么办法可以实现吗?
这是我的代码:
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”是一个包含文件名的字符串