此方法使用递归来查找名称中包含特定字符串的文件。它在网络驱动器上搜索,有时必须搜索数百甚至数千个目录才能找到它要查找的内容。它相当慢——有时需要 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;
}
那么有什么办法可以改善这一点吗?还是搜索这么多目录的过程总是那么慢?谢谢。