このメソッドは、再帰を使用して、名前に特定の文字列を含むファイルを見つけます。ネットワーク ドライブを検索しており、探しているものを見つける前に、数百または数千のディレクトリを検索する必要がある場合があります。かなり遅く、5 ~ 10 秒かかることもあります。このネットワークは他のすべてのものに対して非常に高速であるため、遅延がネットワーク接続によって引き起こされているとは思えません. とにかく、これは私が作り上げたものなので、おそらくもっと効率的なものがあるでしょう.
public static File findFile(File root, String name)
{
File [] dir = root.listFiles();
File a = null;
for(int i = 0; i < dir.length; i++)
{
if(dir[i].isDirectory() && a == null)
a = findFile(dir[i],name);
else if(dir[i].getName().indexOf(name) > -1)
return dir[i];
}
return a;
}
それで、これを改善する方法はありますか?それとも、多くのディレクトリを検索するプロセスは、常にそれほど遅くなるのでしょうか? ありがとう。