我在桌面應用程序中工作使用的Java窗口。在我的應用程序中,需要搜索所有.php文件。要做到這一點,本地文件搜索與迭代算法
這裏我用遞歸方法。
import java.io.File;
public class Copier {
public static void find(String source,String rep) {
File src = new File(rep);
if (src!= null && src.exists() && src.isDirectory()) {
String[] tab = src.list();
if (tab != null) {
for(String s : tab) {
File srcc = new File(rep+"\\"+s);
if (srcc.isFile()) {
if (srcc.getName().matches(".*"+source+"$")) {
System.out.println(s);
}
} else {
find(source,srcc.getAbsolutePath());
}
}
} else {
//System.out.println(" list is null");
}
}
}
這裏我用迭代算法與隊列廣度優先搜索,但它不能正常工作
import java.io.File;
import java.util.LinkedList;
public class Copier {
public static void find(String source,String rep)
{
File src=new File(rep);
LinkedList<File> qu=new LinkedList();
if(src!=null && src.exists() && src.isDirectory())
{
File[] tab=src.listFiles();
if(tab!=null)
{
for(File s:tab)
{
qu.addLast(s);
}
while(!qu.isEmpty())
{
File srcc=qu.getFirst();
qu.removeFirst();
if(srcc.isFile())
{
if(srcc.getName().matches(".*"+source+"$"))
System.out.println(srcc.getName());
}
else
{
System.out.println(srcc.getName());
qu.addLast(srcc);
}
}
}
}
}
public static void main(String[] args)
{
try {
find(".php","C:\\AppServ");
} catch (Exception e) {
e.printStackTrace();
}
}
}
什麼不工作?什麼是輸出?請提供更多信息。 – Jon 2011-12-19 18:41:57
是的,我需要找到所有的文件。 PHP在我的本地我使用迭代 – 2011-12-19 19:06:51