java如何取得文件夹下所有的子目录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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);
参考技术A 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从零基础到架构师进阶学习路径及配套教程资料
是该目录中的文件,不是子目录吧?
你可以这么做:
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());
获得该父目录下所有子目录~本回答被提问者和网友采纳 参考技术C 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());
大概就是这样,给你参考
参考技术D //folders保存所有根目录下面的文件夹。。File[] folders = file.listFiles(new FileFilter()
public boolean accept(File fl)
return fl.isDirectory();
);
PHP如何读出当前目录下所有文件?
参考技术A 一般来说php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:\\x0d\\x0a 复制代码 代码如下:$dir="./caxa/";\\x0d\\x0a $file=scandir($dir);\\x0d\\x0a print_r($file);\\x0d\\x0a 稍微复杂点的,来自于php手册:\\x0d\\x0a 复制代码 代码如下:$dir = "/etc/php5/";\\x0d\\x0a // Open a known directory, and proceed to read its contents\\x0d\\x0a if (is_dir($dir)) \\x0d\\x0a if ($dh = opendir($dir)) \\x0d\\x0a while (($file = readdir($dh)) !== false) \\x0d\\x0a echo "filename: $file : filetype: " . filetype($dir . $file) . "\n";\\x0d\\x0a closedir($dh);\\x0d\\x0a \\x0d\\x0a \\x0d\\x0a 这些都只能读取当前指定目录下的文件,对子目录中的文件则无法读取。原来自己写过一个循环删除所有目录的一段代码,需要逐个子目录删除所有文件,包括多层。但是只需要读出文件名,稍微复杂点,网上找到一个能用,原始代码有错误提示,改了一下引用&$data的地方,如下所示:\\x0d\\x0a 复制代码 代码如下:function searchDir($path,&$data)\\x0d\\x0a if(is_dir($path))\\x0d\\x0a $dp=dir($path);\\x0d\\x0a while($file=$dp->read())\\x0d\\x0a if($file!=\'.\'&& $file!=\'..\')\\x0d\\x0a searchDir($path.\'/\'.$file,$data);\\x0d\\x0a \\x0d\\x0a \\x0d\\x0a $dp->close();\\x0d\\x0a \\x0d\\x0a if(is_file($path))\\x0d\\x0a $data[]=$path;\\x0d\\x0a \\x0d\\x0a \\x0d\\x0a function getDir($dir)\\x0d\\x0a $data=array();\\x0d\\x0a searchDir($dir,$data);\\x0d\\x0a return $data;\\x0d\\x0a \\x0d\\x0a print_r(getDir(\'.\'));\\x0d\\x0a 希望本文所述对大家的PHP程序设计有所帮助。以上是关于java如何取得文件夹下所有的子目录的主要内容,如果未能解决你的问题,请参考以下文章
java 如何把一个目录下的所有.java文件复制到另一个目录下,并保持其结构不变
powershell 使用LastWriteTime(上次修改时间)显示目录下的所有文件,使用LastWriteTime显示完整文件路径顺序。取得目前资料夹的所有档案的最后修改时间和档案路径的