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 に答える