【Java】读取其下所有文件夹与文件的路径
来源:互联网 发布:mac无主之地2没有繁体 编辑:程序博客网 时间:2024/06/06 03:38
如果在f:\aa文件夹中,有如下图的文件夹与文件:
那么,在Java中,则如此读取f:/aa下的所有文件路径:
1、首先由于用到了文件与容器类下的ArrayList,所以在开头要引入如下包:
import java.io.*;import java.util.*;
2、方法如下,其中File dirFile除了盘符,比如f:,以外,能够接受一切合法的路径。由于盘符下含有一些系统文件,拒绝访问,因为读取盘符,可能会出现空指针异常。
//这里是仅仅查询当前路径下的所有文件夹、文件并且存放其路径到文件数组//由于遇到文件夹不查询其包含所有子文件夹、文件,因此没必要用到递归public static ArrayList<String> Dir(File dirFile) throws Exception {ArrayList<String> dirStrArr = new ArrayList<String>();if (dirFile.exists()) {//直接取出利用listFiles()把当前路径下的所有文件夹、文件存放到一个文件数组File files[] = dirFile.listFiles();for (File file : files) {//如果传递过来的参数dirFile是以文件分隔符,也就是/或者\结尾,则如此构造if (dirFile.getPath().endsWith(File.separator)) {dirStrArr.add(dirFile.getPath() + file.getName());} else {//否则,如果没有文件分隔符,则补上一个文件分隔符,再加上文件名,才是路径dirStrArr.add(dirFile.getPath() + File.separator+ file.getName());}}}return dirStrArr;}其上的方法,是不读取f:\aa下的新建文件夹下的xlsx,如果在读取的过程中,遇到文件夹要同时读取其包含所有子文件夹、文件时,则要用到递归,先设置一个全局的动态数组:
public static ArrayList<String> dirAllStrArr = new ArrayList<String>();然后方法如下:
public static void DirAll(File dirFile) throws Exception {if (dirFile.exists()) {File files[] = dirFile.listFiles();for (File file : files) {//如果遇到文件夹则递归调用。if (file.isDirectory()) {// 递归调用DirAll(file);} else {//如果遇到文件夹则放入数组if (dirFile.getPath().endsWith(File.separator)) {dirAllStrArr.add(dirFile.getPath() + file.getName());} else {dirAllStrArr.add(dirFile.getPath() + File.separator+ file.getName());}}}}}其实在读取的过程中,关键是利用listFiles()方法,获取本文件夹下的所有文件列表,之后和《【Java】移动文件夹及其所有子文件与子文件夹》(点击打开链接),《【Java】利用文件输入输出流完成把一个文件夹内的所有文件拷贝的另一的文件夹的操作》(点击打开链接)一样,遇到文件夹则进行递归。
上面整个方法的来起来是这样的一个java文件:
import java.io.*;import java.util.*;public class fileList {// 设置一个全局动态数组,来存放文件路径// 主要遍历文件夹,包含所有子文件夹、文件的情况时,用到递归,所以要这样设置public static ArrayList<String> dirAllStrArr = new ArrayList<String>();// 这里是仅仅查询当前路径下的所有文件夹、文件并且存放其路径到文件数组// 由于遇到文件夹不查询其包含所有子文件夹、文件,因此没必要用到递归public static ArrayList<String> Dir(File dirFile) throws Exception {ArrayList<String> dirStrArr = new ArrayList<String>();if (dirFile.exists()) {// 直接取出利用listFiles()把当前路径下的所有文件夹、文件存放到一个文件数组File files[] = dirFile.listFiles();for (File file : files) {// 如果传递过来的参数dirFile是以文件分隔符,也就是/或者\结尾,则如此构造if (dirFile.getPath().endsWith(File.separator)) {dirStrArr.add(dirFile.getPath() + file.getName());} else {// 否则,如果没有文件分隔符,则补上一个文件分隔符,再加上文件名,才是路径dirStrArr.add(dirFile.getPath() + File.separator+ file.getName());}}}return dirStrArr;}public static void DirAll(File dirFile) throws Exception {if (dirFile.exists()) {File files[] = dirFile.listFiles();for (File file : files) {// 如果遇到文件夹则递归调用。if (file.isDirectory()) {// 递归调用DirAll(file);} else {// 如果遇到文件夹则放入数组if (dirFile.getPath().endsWith(File.separator)) {dirAllStrArr.add(dirFile.getPath() + file.getName());} else {dirAllStrArr.add(dirFile.getPath() + File.separator+ file.getName());}}}}}public static void main(String[] args) throws Exception {File dirFile = new File("f:/aa");System.out.println(Dir(dirFile));DirAll(dirFile);System.out.println(dirAllStrArr);}}
运行结果如下:
0 0
- 【Java】读取其下所有文件夹与文件的路径
- 【Java】读取其下所有文件夹与文件的路径
- java读取某个文件夹下所有文件与文件夹
- Java-读取某个目录下所有文件、文件夹和3种从文件路径中获取文件名的方法
- Java 读取文件夹下所有文件
- java 读取某个文件夹下的所有文件
- java读取某个文件夹下的所有文件
- java读取某个文件夹下的所有文件
- java读取某个文件夹下的所有文件
- Java读取和删除文件夹下的所有文件
- java读取某个文件夹下的所有文件
- java 循环读取一个指定文件夹下的所有文件
- java读取某个文件夹下的所有文件
- Java自动读取指定文件夹下的所有文件
- java读取某个文件夹下的所有文件
- java读取某个文件夹下的所有文件
- JAVA 读取某一路径下的文件和文件夹信息
- 根据文件路径获得其所在文件夹,并删除该文件夹下后缀名为.tmp的所有文件
- Excel-数据分类导出至多个Sheet NPOI.dll
- 聚合函数min和distinct起到一样的作用
- 解决Android在listview中checkbox批量操作问题
- android设计概述
- Content Security Policy介绍
- 【Java】读取其下所有文件夹与文件的路径
- 鼠标放在物体上,就弹出属性框
- JAVA 极速WEB+ORM框架 JFinal
- android开发路-bitmap转缓存输入流BufferedInputStream
- VC++获得微秒级时间的方法与技巧探讨
- hibernate关联映射
- bootstrap 模态窗口点击图层不关闭写法
- 关于后盾网yii框架的学习小结(1)--yii模块的安装
- Android电话短信拦截项目总结之 SQLite数据库简介和使用