java如何取得文件夹下所有的子目录

 我来答
sdvnndsvbgcb
2018-03-05
知道答主
回答量:21
采纳率:0%
帮助的人:2.9万
展开全部

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);  

}   

}   

}   

xiaoben8and8
2018-03-05 · 超过13用户采纳过TA的回答
知道答主
回答量:25
采纳率:100%
帮助的人:14.5万
展开全部
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]);
        }
    }
}

推荐个Java从零基础到架构师进阶学习路径及配套教程资料

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秀乞群群
推荐于2016-08-18 · TA获得超过19万个赞
知道顶级答主
回答量:6.7万
采纳率:91%
帮助的人:2.4亿
展开全部
f.listFiles()返回一个抽象路径名数组,这些路径名表示此抽象路径名所表示目录中的文件。
是该目录中的文件,不是子目录吧?
你可以这么做:
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());
}
}
获得该父目录下所有子目录~
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
dark19861201
2018-03-05 · TA获得超过2152个赞
知道大有可为答主
回答量:2584
采纳率:79%
帮助的人:1771万
展开全部
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();
}

});
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式