易截截图软件、单文件、免安装、纯绿色、仅160KB

java递归中的返回问题

大家好,小弟欲使用递归对某目录进行搜索,找到需要的文件,如果递归函没有返回值,只是打印出一些信息,那是没问题的,但是如果作为函数返回值进行返回,则出现问题,如下代码:
Java code:

// dir表示目录路径,name表示欲匹配的文件名的正则表达式
private File getFile(String dir, String name) {
File[] files = new File(dir).listFiles();
int len = files.length;
for (int i = len-1; i >= 0; i--) {
if (files[i].isDirectory()) {
// 当前访问文件为目录,则递归
return getFileStrByRegex(files[i].getAbsolutePath(), regName);
} else if (files[i].getName().matches(regName)) {
// 找到,返回
return files[i];
} else {
// 当前访问文件为真实文件,而非目录,但又不是符合条件的
// 这里要怎么写?当然可以什么都不写,那就请看最后一句return null;的注释
}
}
// 这句话一执行,无论当前递归到哪一层,整个函数都会结束并返回null,但是如果这句没有,则由于函数有返回值,会报语法错误
return null;
}


问:如何以递归的方式返回文件(注意需要返回值)?还有,我测试了一下,发现return和return null是不一样的,前者只会返回当前层的递归,而后者则所有层都返回,即整个递归过程结束。请指教,谢谢,谢谢~~
up

递归目录不需要返回值。
我这是C#的递归目录,跟Java应该差不多。


相关问答:

怎么用Java实现定时执行某程序 - Java / Java SE

我想用Java写一个程序,就是我想在运行代码后,在指定的时间打开某程序,例如我运行代码后,讲在12:00打开"D:\Program Files\Tencent\QQ2009\Bin\QQ.exe"这个程序,求高人指点。还有可能的话在指定的时间 ......

jsp页面中字体变色问题 - Java / Web 开发

<html><head><title>[@title]</title>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<script language='javascript'>
function diyCheck ......

mysql连接tomcat - Java / Web 开发

我已经按照教程上配置tomcat的server.xml
<Context path = "/POS" docBase = "POS" debug = "5" reloadable = "true" crossContext = "true" workDir = &quo ......

java使用代理访问网址 - Java / Java SE

代码如下 ,我想通过代理访问一些网址,但是不知道如何测试代理成功,我想通过访问“http://www.blogger.com/”来看看是否代理成功,但是也不能访问,出现异常“Unexpected end of file from server”,但是如果不这 ......

JSP读入数据库 - Java / Java EE

我是个新手,做一个JSP网页,我要读出数据库正常,但是我要修改的时候,也就是读入的时候出现乱码,请高手告诉我怎么解决,先谢谢了。
request.setCharacterEncoding("UTF-8");

把编码统一

/**
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号