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从零基础到架构师进阶学习路径及配套教程资料

参考技术B 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());


获得该父目录下所有子目录~本回答被提问者和网友采纳
参考技术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如何取得文件夹下所有的子目录的主要内容,如果未能解决你的问题,请参考以下文章

php中哪个函数可以取得某目录下的所有文件名?

java 如何把一个目录下的所有.java文件复制到另一个目录下,并保持其结构不变

java中如何获取目录中的所有文件

powershell 使用LastWriteTime(上次修改时间)显示目录下的所有文件,使用LastWriteTime显示完整文件路径顺序。取得目前资料夹的所有档案的最后修改时间和档案路径的

如何获取一个目录下有多少个文件 java

在Perl中有个if语句为if (-e "$dir/$_),其中$dir是某个目录,$_已取得$dir目录下的文件。