java如何取得文件夹下所有的子目录
package edu.chinasoft.wtf;
import java.io.File;
/**
* @author :wtf
* @version 创建时间:2018年3月5日 上午9:59:05
* 类说明:该类可以输出指定路径下所有的文件名(文件名和文件夹名)
* 指定一个路径即可
*/
public class printURL {
public static void main(String[] args) {
//这是需要获取的文件夹路径 这里填写你的文件路径 注意 / 与 \
String path = "E:/";
getFile(path,0);
}
/*
* 函数名:getFile
* 作用:使用递归,输出指定文件夹内的所有文件
* 参数:path:文件夹路径 deep:表示文件的层次深度,控制前置空格的个数
* 前置空格缩进,显示文件层次结构
*/
private static void getFile(String path,int deep){
// 获得指定文件对象
File file = new File(path);
// 获得该文件夹内的所有文件
File[] array = file.listFiles();
for(int i=0;i<array.length;i++)
{
if(array[i].isFile())//如果是文件
{
for (int j = 0; j < deep; j++)//输出前置空格
System.out.print(" ");
// 只输出文件名字
System.out.println( array[i].getName());
// 输出当前文件的完整路径
// System.out.println("#####" + array[i]);
// 同样输出当前文件的完整路径 大家可以去掉注释 测试一下
// System.out.println(array[i].getPath());
}
else if(array[i].isDirectory())//如果是文件夹
{
for (int j = 0; j < deep; j++)//输出前置空格
System.out.print(" ");
System.out.println( array[i].getName());
//System.out.println(array[i].getPath());
//文件夹需要调用递归 ,深度+1
getFile(array[i].getPath(),deep+1);
}
}
}
}
public static void main(String[] args) {
String path="D:\\";
File file=new File(path);
File[] tempList = file.listFiles();
System.out.println("该目录下对象个数:"+tempList.length);
for (int i = 0; i < tempList.length; i++) {
if (tempList[i].isFile()) {
System.out.println("文 件:"+tempList[i]);
}
if (tempList[i].isDirectory()) {
System.out.println("文件夹:"+tempList[i]);
}
}
}
是该目录中的文件,不是子目录吧?
你可以这么做:
public void getDir(String strPath)
{
File f=new File(strPath);
if(f.isDirectory())
{
File[] fList=f.listFiles();
for(int j=0;j<fList.length;j++)
{
if(fList[j].isDirectory())
getDir(fList[j].getPath);
System.out.println(fList[j].getName());
}
}
获得该父目录下所有子目录~
import java.io.File;
public class PrintFolder {
public static void main(String[] args) {
File f = new File("D:\\test");
new PrintFolder().print(f);
}
public void print(File file) {
if(file.isDirectory()) {
System.out.println(file.getAbsolutePath());
for(File f:file.listFiles()) {
if(f.isDirectory()) {
print(f);
}else if(f.isFile()){
System.out.println(f.getAbsolutePath());
}
}
}else if(file.isFile()){
System.out.println(file.getAbsolutePath());
}
}
}
大概就是这样,给你参考
2018-03-04
//folders保存所有根目录下面的文件夹。。
File[] folders = file.listFiles(new FileFilter(){
public boolean accept(File fl) {
return fl.isDirectory();
}
});
}