递归例子

要获取某个文件夹下所有文件的总记录(包括子文件夹中的文件)

public int getFileCount(File path) {
int count = 0;
if (path.isFile()) { //如果是文件
count++;
} else if (path.isDirectory()) { //如果是文件夹
for (File f : path.listFiles()) { //遍历文件夹下的所有子文件
count += getFileCount(f); //递归获得子文件夹的文件数
}
}
return count;
}

转载请注明来源:http://topic.csdn.net/u/20120516/10/b74ac11d-6a9b-46ec-8dd1-fe5232c60ac9.html?45641 引用二楼

欢迎加关注


ps:关于递归

递归算法:在函数或子过程的内部,直接或者间接地调用自己的算法。

递归的一般模式:

public int getFileCount(File path) {
int count = 0;
if (path.isFile()) { //(边界条件及必要操作)
count++;
} else if (path.isDirectory()) { //不满足此边界条件的
for (File f : path.listFiles()) { //(重复的操作,相同逻辑);
count += getFileCount(f);
}
}
return count;
}  


你可能感兴趣的:(c,算法,File,Path)