|
> If StrComp(IO.Path.GetExtension(Filepath), 拡張子, CompareMethod.Text) = 0 Then
> files.Add( Filepath)
> End If
十分スマートに見えますが・・・ループの深いとこで当たるファイルが10000件くらい
あると若干スピード差が出てくるかもしれませんが、マップもループも大して変わらないで
すよ。
public function GetFiles(dir as String, exts() as String) as List
dim map as new HashMap()
dim lst as new ArrayList()
for i as integer = 0 to exts.Count - 1
map.add(exts(i).toLowerCase(), true)
next
for each name as String in GetFiles(dir)
try
dim ext as String = name.substring(name.lastIndexOf(".") + 1)
if map.get(ext.toLowerCase()) then
lst.add(name)
end if
catch e as Exception
end try
next
return lst
end function
dim lst as List = GetFiles("C:\xxxx", new String() { "TXT", "BAS", "VBS", "SLN", "JAVA" })
GetFiles って、ExtensionFilter がありませんでしたっけ?
便乗質問は別スレッドが基本です。
たぶん。
|