java中怎样获得一个文件夹中的所有文件名

java中怎样获得一个文件夹中的所有文件名,第1张

java中获得一个文件夹中的所有文件名代码如下:

package com.readfile

import java.io.File

public class GetAllFiles {

public static void main(String[] args) {

//路径   这里写一个路径进去

String path="F:\\QQ文档"

//调用方法

getFiles(path)

}

 

/**

* 递归获取某路径下的所有文件,文件夹,并输出

*/

public static void getFiles(String path) {

File file = new File(path)

// 如果这个路径是文件夹

if (file.isDirectory()) {

// 获取路径下的所有文件

File[] files = file.listFiles()

for (int i = 0i <files.lengthi++) {

// 如果还是文件夹 递归获取里面的文件 文件夹

if (files[i].isDirectory()) {

System.out.println("目录:" + files[i].getPath())

getFiles(files[i].getPath())

} else {

System.out.println("文件:" + files[i].getPath())

}

}

} else {

System.out.println("文件:" + file.getPath())

}

}

}

扩展资料:

如果想要获得当前文件中的文件名只需要String [] fileName = file.list()就可以了。

如果要包括文件中的文件名就可以用递归的方式。下面是两个具体的实现。

其中public static String [] getFileName(String path)是只得到当前文件中的文件名。

public static void getAllFileName(String path,ArrayList<String>fileName)是包括当前文件及其子文件的文件名。

参考资料:

百度百科-Java

import java.io.File \x0d\x0aimport java.io.IOException \x0d\x0apublic class FileDemo11{\x0d\x0apublic static void main(String args[]){\x0d\x0aFile my = new File("d:" + File.separator) // *** 作路径,可以有外部参数决定的\x0d\x0aprint(my) \x0d\x0a}\x0d\x0apublic static void print(File file){// 递归调用\x0d\x0aif(file!=null){// 判断对象是否为空\x0d\x0aif(file.isDirectory()){// 如果是目录\x0d\x0aFile f[] = file.listFiles() // 列出全部的文件\x0d\x0aif(f!=null){// 判断此目录能否列出\x0d\x0afor(int i=0i<f.lengthi++){\x0d\x0aprint(f[i]) // 因为给的路径有可能是目录,所以,继续判断\x0d\x0a}\x0d\x0a}\x0d\x0a}else{\x0d\x0aSystem.out.println(file) // 输出路径\x0d\x0a}\x0d\x0a}\x0d\x0a}\x0d\x0a}

/**

 * 获取指定路径下的所有文件列表

 *

 * @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

}


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/7953115.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-11
下一篇 2023-04-11

发表评论

登录后才能评论

评论列表(0条)

保存