0

我需要创建一个通用函数来列出并返回目录中某些扩展名的所有文件。

我知道如何做到这一点,但问题是我希望可能存在一种更好、更有效的方法来过滤文件,而不是使用 For 来迭代它们。

基本上我需要的是把这行代码转换成一个通用函数:

Dim files = Directory.GetFiles("C:\", "*").Where(Function(s) s.EndsWith(".exe") OrElse s.EndsWith(".xml"))

像这样的东西(代码不起作用):

dim files = Files("C:\", {"jpg", "mp3"})
private function Get_Files(byval directory as string, byval Extensions() as string)
    return Directory.GetFiles(directory , "*").Where(Function(s) s.EndsWith(Extensions))
end sub

...或者如果有更好的方法(没有 For 或任何其他大型循环)。

4

1 回答 1

0

这是一个返回 FileInfo 对象的示例。它们包含有关您的文件的更多信息。

Private Function GetFileInfos(dir As String, ParamArray exts() As String) As List(Of FileInfo)
  Return New DirectoryInfo(dir).GetFiles.Where(Function(o) exts.Contains(o.Extension)).ToList
End Function
于 2013-06-08T16:40:00.287 回答