新手不明白代码意思,求分析java代码

public static void loadBacthFiles(File f) throws Exception{
if(f.isDirectory()){
File fileListName[]=f.listFiles();
String[] filenames=f.list();
if(null!=fileListName){
for(int i=0;i<fileListName.length;i++){
loadBacthFiles(fileListName[i]);
if(fileListName[i].isDirectory()){
logger.info(fileListName[i].getParentFile());
}

if(!fileListName[i].isDirectory()){
logger.info(fileListName[i]);
String path=""+fileListName[i];
String pathName=fileListName[i].getName();
String [] vals=pathName.substring(0, pathName.lastIndexOf(".")).split("_");
String name=vals[0].replace(" ", "");//去掉空格
String cerno=vals[1];
String appcode=vals[2];
CreditRptParser.parse(path,appcode);
}

                  }                

http://www.cnblogs.com/yanbincn/archive/2012/07/05/2576540.html

eclipse上面跑一下 一行一行看

我很少接触Java,但是这个环节跟递归删除文件夹的结构一样;你是函数不清楚还是这个过程不清楚,,
我来简单描述下这个逻辑过程。
批文件处理过程————
先导入一个目录文件 -> 判断是不是目录文件,
是的打开把里面的东西存储到一个文件数组//listfile()<二级目录文件>;
->接着不是空//!=nullfile,进行下面的程序
遍历二级文件里面的内容,调用自身;判断二级件是不是目录文件,是的。log.info;
不是的进行目标处理;<最后一个if里面的内容了>



    public static void loadBacthFiles(File f) throws Exception{
        if(f.isDirectory()){
            File fileListName[]=f.listFiles();
            String[] filenames=f.list();
            if(null!=fileListName){
                for(int i=0;i<fileListName.length;i++){
                    loadBacthFiles(fileListName[i]);
                    if(fileListName[i].isDirectory()){
                        logger.info(fileListName[i].getParentFile());
                    }

                   if(!fileListName[i].isDirectory()){
                        logger.info(fileListName[i]);
                        String path=""+fileListName[i];
                        String pathName=fileListName[i].getName();
                        String [] vals=pathName.substring(0, pathName.lastIndexOf(".")).split("_");
                        String name=vals[0].replace(" ", "");//去掉空格
                        String cerno=vals[1];
                        String appcode=vals[2];
                        CreditRptParser.parse(path,appcode);
                        }
                }
            }
        }
}                


public static void loadBacthFiles(File f) throws Exception{
if(f.isDirectory()){//如果file 是一个目录
File fileListName[]=f.listFiles();//取到此目录下的所有子文件
String[] filenames=f.list();//取到此目录下的所有子文件名字
if(null!=fileListName){//如果子文件组不为空
for(int i=0;i<fileListName.length;i++){//遍历子文件
loadBacthFiles(fileListName[i]);
if(fileListName[i].isDirectory()){//判断第i个子文件是否是目录
logger.info(fileListName[i].getParentFile());
}

if(!fileListName[i].isDirectory()){//如果子文件不是目录
logger.info(fileListName[i]);
String path=""+fileListName[i];//取出文件路径
String pathName=fileListName[i].getName();//取出文件名
String [] vals=pathName.substring(0, pathName.lastIndexOf(".")).split("_");
String name=vals[0].replace(" ", "");//去掉空格
String cerno=vals[1];
String appcode=vals[2];
CreditRptParser.parse(path,appcode);
}
}