java列出文件夹下的所有文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java列出文件夹下的所有文件相关的知识,希望对你有一定的参考价值。

这个程序主要是想遍一个文件夹下的所有文件.
不过.最后总是报错:

//遍历当前文件夹下的所有文件

import java.io.File;
import java.util.Date;

public class TryFile2

public static void main(String[]args)


File myDir=new File("D:/My Documents/0");

System.out.println(myDir.getAbsolutePath()

+(myDir.isDirectory() ? "is ":" is not ")
+" a directory");

System.out.println("The parent of "+myDir.getName()+ " is "

+myDir.getParent());

File[]contents=myDir.listFiles();

if(contents !=null)

System.out.println("\nThe "+contents.length

+"items in the directory"+myDir.getName()
+"are:");

for(File file : contents)

System.out.println(file+" is a"
+(file.isDirectory()?"directory":"file")
+"last modified on:\n"
+new Date(file.lastModified()));



else
System.out.println(myDir.getName() + "is not a directory");



System.exit(0);



/**
 * 获取指定路径下的所有文件列表
 *
 * @param dir 要查找的目录
 * @return
 */
public static List<String> getFileList(String dir) 
    List<String> listFile = new ArrayList<>();
    File dirFile = new File(dir);
    //如果不是目录文件,则直接返回
    if (dirFile.isDirectory()) 
        //获得文件夹下的文件列表,然后根据文件类型分别处理
        File[] files = dirFile.listFiles();
        if (null != files && files.length > 0) 
            //根据时间排序
            Arrays.sort(files, new Comparator<File>() 
                public int compare(File f1, File f2) 
                    return (int) (f1.lastModified() - f2.lastModified());
                

                public boolean equals(Object obj) 
                    return true;
                
            );
            for (File file : files) 
                //如果不是目录,直接添加
                if (!file.isDirectory()) 
                    listFile.add(file.getAbsolutePath());
                 else 
                    //对于目录文件,递归调用
                    listFile.addAll(getFileList(file.getAbsolutePath()));
                
            
        
    
    return listFile;

参考技术A 遍历所有文件,用递归来写合适一些:
//package com.color.io;

import java.io.File;

public class ListFile

public static void main(String[] args)

File file = new File("D:\\file");
ListFile.listFile(file);


public static void listFile(File f)
if(f.isDirectory())
System.out.println("directory:"+f.getPath()+"--parent:"+f.getParent());
File[] t = f.listFiles();
for(int i=0;i<t.length;i++)
listFile(t[i]);

else
System.out.println("fileName:"+f.getAbsolutePath()+"--parent:"+f.getParent());


本回答被提问者采纳
参考技术B package test;

import java.io.File;
import java.util.Date;

public class TryFile2

public static void main(String[]args)


File myDir=new File("e:/My Documents");

System.out.println(myDir.getAbsolutePath()

+(myDir.isDirectory() ? "is ":" is not ")
+" a directory");

System.out.println("The parent of "+myDir.getName()+ " is "

+myDir.getParent());

File[]contents=myDir.listFiles();

if(contents !=null)

System.out.println("\nThe "+contents.length

+"items in the directory"+myDir.getName()
+"are:");

for(File file : contents)

System.out.println(file+" is a"
+(file.isDirectory()?"directory":"file")
+"last modified on:\n"
+new Date(file.lastModified()));

else
System.out.println(myDir.getName() + "is not a directory");



System.exit(0);



正确了

PHP读取目录下所有文件

读取名为DD的目录下的所有文件(假设要写的这段PHP代码文件和DD在同一目录,不是在DD下哦)。注意:DD下还有几个子目录(比如有a,ab,aii,dec4个子目录,还有几个文本文件和DOC文件)。
读取所有文件后,取得文件名,文件路径,文件修改时间,文件的扩展名,在页面输出,最后用&分隔存入TXT文件。
我是新人,我已经按照上面的要求建好文件和目录了,需要可以运行出结果的代码。便于理解。
FILETYPE返回的是dir和file,dir是目录,file是文件,是判断是目录还是文件的吧,不是返回扩展名啊。

php中读取目录下的文件名的方式确实不少,最简单的是scandir,具体代码如下:
$dir="./目录名/";
$file=scandir($dir);
print_r($file);
参考技术A 1楼的不错,但是有点小BUG哦。
不过过滤应该在is_dir之后,不然连名字以.php结尾的目录也会被忽略掉。要记得目录名中是可以有点号的。
参考技术B 希望你下载个手册看看,上边有很多这种例子,手册里搜索readdir

以下来自手册:
function ls($dir, $mask /*.php$|.txt$*/)

static $i = 0;
$files = Array();
$d = opendir($dir);
while ($file = readdir($d))

if ($file == '.' || $file == '..' || eregi($mask, $file) ) continue;
if (is_dir($dir.'/'.$file))

$files += ls($dir.'/'.$file, $mask);
continue;

$files[$i++] = $dir.'/'.$file;

return $files;

$f = ls('E:/www/mymoney/lsdu', ".php$" /*no spaces*/);
//这里第二个参数代表不读取.php文件
2楼说的不错,不过有几个用.php等字符做文件夹的名字呢?
文件扩展名:请使用函数filetype 修改时间:filemtime
恩,我想错了
那你这样取:
在$files[$i++] = $dir.'/'.$file;这一行后边加上
$extend = pathinfo($file);
echo strtolower($extend["extension"]),'<br/>';本回答被提问者和网友采纳

以上是关于java列出文件夹下的所有文件的主要内容,如果未能解决你的问题,请参考以下文章

用java写一个代码实现: 如何列出某个目录下的所有子目录

怎样使用C语言列出某个目录下的文件?

php列出目录下所有文件(包括子目录)

如何列出目录下的所有文件

递归列出给定路径下的所有文件和文件夹? [复制]

如何列出硬盘驱动器文件夹下的所有文件名?