Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其它流类不同的是,流类关心的是文件的内容。而File类关心的是磁盘上文件的存储。

一,File类有多个构造器,经常使用的构造器有:

1。public File(String pathname){}

在pathname路径下创建文件对象

2。public File(String path,String name){}

在path參数指定的文件夹中创建具有给定名字的File对象。假设path为null,构造器将使用当前文件夹创建对象

3,public File(File dir, String name){}

File对象dir表示一个文件夹,在dir參数指定的文件夹中创建具有给定名字的File对象,假设dir为null,

构造器将使用当前文件夹创建对象

二。获得文件的权限属性:

1,表明文件是否可读,可写。可运行

boolean canRead()

boolean canWrite()

boolean canExecute()

2。设置文件的可读。可写,可运行

boolean setReadable(bollean state,bollean ownerOnly)

boolean setWritable((bollean state,bollean ownerOnly)

boolean setExecutable((bollean state,bollean ownerOnly)

3,删除文件

boolean delete()

假设文件被删除则返回true,否则返回false

void deleteOnExit()

在虚拟机关闭时将文件删除

4。推断文件是否存在

boolean exists()

5,获得文件路径名

String getCanonicalPath()

返回包括这个文件的规范路径名的字符串该方法会使用恰当的文件夹分隔符,并能够获得底层文件系统所选择的大写和小写处理方式

String getName()

返回包括这个File对象的文件名称的字符串。但不包括路径信息

6。推断File为文件还是文件夹

boolean isDirectory()

推断是否为一个文件夹

boolean isFile()

推断是否为一个文件

7,获得File对象包括的文件名称和文件夹名

String[] list()

返回这个File对象包括的文件名称和文件夹名构成的字符创数组

String[] list(FilenameFilter filter)

返回有这个File对象包括的满足过滤器条件的文件名称和文件夹名构成的字符串数组

File还有很多方法属性,跟多的能够查看API文档

如今,使用File类来遍历一个文件夹下的全部文件。我的程序过程为:

1,获取pathName的File对象

2,推断该文件或文件夹是否存在。不存在时在控制台输出提醒

3。推断假设不是一个文件夹。就推断是不是一个文件,时文件则输出文件路径

4,获取此文件夹下的全部文件名称与文件夹名的字符串数组

5。假设是一个文件夹。搜索深度currentDepth+1,输出文件夹名后。进行递归

6,假设是文件,则直接输出文件名称

程序例如以下:

  1. import java.io.File;
  2. import java.io.IOException;
  3.  
  4. public class DirErgodic {
  5.  
  6. private static int depth=1;
  7.  
  8. public static void find(String pathName,int depth) throws IOException{
  9. int filecount=0;
  10. //获取pathName的File对象
  11. File dirFile = new File(pathName);
  12. //推断该文件或文件夹是否存在。不存在时在控制台输出提醒
  13. if (!dirFile.exists()) {
  14. System.out.println("do not exit");
  15. return ;
  16. }
  17. //推断假设不是一个文件夹,就推断是不是一个文件,时文件则输出文件路径
  18. if (!dirFile.isDirectory()) {
  19. if (dirFile.isFile()) {
  20. System.out.println(dirFile.getCanonicalFile());
  21. }
  22. return ;
  23. }
  24.  
  25. for (int j = 0; j < depth; j++) {
  26. System.out.print(" ");
  27. }
  28. System.out.print("|--");
  29. System.out.println(dirFile.getName());
  30. //获取此文件夹下的全部文件名称与文件夹名
  31. String[] fileList = dirFile.list();
  32. int currentDepth=depth+1;
  33. for (int i = 0; i < fileList.length; i++) {
  34. //遍历文件文件夹
  35. String string = fileList[i];
  36. //File("documentName","fileName")是File的还有一个构造器
  37. File file = new File(dirFile.getPath(),string);
  38. String name = file.getName();
  39. //假设是一个文件夹。搜索深度depth++,输出文件夹名后。进行递归
  40. if (file.isDirectory()) {
  41. //递归
  42. find(file.getCanonicalPath(),currentDepth);
  43. }else{
  44. //假设是文件,则直接输出文件名称
  45. for (int j = 0; j < currentDepth; j++) {
  46. System.out.print(" ");
  47. }
  48. System.out.print("|--");
  49. System.out.println(name);
  50.  
  51. }
  52. }
  53. }
  54.  
  55. public static void main(String[] args) throws IOException{
  56. find("D:\\MongoDB", depth);
  57. }
  58. }

測试截图:

Java遍历一个文件夹下的全部文件的更多相关文章

  1. Java遍历文件夹下的所以文件

    利用Java递归遍历文件夹下的所以文件,然后对文件进行其他的操作.如:对文件进行重命名,对某一类文件进行重编码.可以对某一工程下的全部.java文件进行转码成utf-8等 代码如下,这里只对文件进行重 ...

  2. JAVA 遍历文件夹下的所有文件

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  3. JAVA 遍历文件夹下的所有文件(递归调用和非递归调用)

    JAVA 遍历文件夹下的所有文件(递归调用和非递归调用) 1.不使用递归的方法调用. public void traverseFolder1(String path) { int fileNum = ...

  4. 用Java实现将多级文件夹下的所有文件统一放到一个文件夹中

    每次下了电影(男生懂得呦),每部电影都放在一个单独的文件夹里,看的时候很是不方便啊,一直重复着进入文件夹.后退,再进.再退的操作,而手动把这些电影全部复制出来又太繁琐.因此为了解决这个问题,用IO写了 ...

  5. php 遍历一个文件夹下的所有文件和子文件

    php 遍历一个文件夹下的所有文件和子文件 <?php /** * 将读取到的目录以数组的形式展现出来 * @return array * opendir() 函数打开一个目录句柄,可由 clo ...

  6. Java基础面试操作题: File IO 文件过滤器FileFilter 练习 把一个文件夹下的.java文件复制到另一个文件夹下的.txt文件

    package com.swift; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File ...

  7. C/C++遍历Windows文件夹下的所有文件

    因为文件夹中往往包含文件和文件夹.想要遍历所有的文件,必须遍历文件夹中所有的文件夹.很显然,这个描述满足递归的两个要素:(1)问题的规模在不断的缩小,且新问题的模式与旧问题相同.很显然文件夹中含有子文 ...

  8. java读取某个文件夹下的所有文件

    import java.io.FileNotFoundException;import java.io.IOException;import java.io.File; public class Re ...

  9. java:多层文件夹情况下,判断文件夹下是否有文件夹,并获取到没有文件夹的名字的方法

    业务问题案例 在公司遇到的一个问题,本以为很小很好解决,没想到花了一下午时间.图给的是文件路径,page1下有10个文件夹,每个有的有文件夹或者文件,要求得到page1下(即:123456789,10 ...

随机推荐

  1. 你的宽带ip地址被100.64了吗?

    你的宽带ip地址被100.64了吗?   最近需要用外网的时候发现,宿舍路由wan口的ip变成了100.64.X.X,本以为是一个外网的ip,可事实上并不是,并且从外网无法直接访问.   首先,我们都 ...

  2. python实现二叉树的遍历以及基本操作

    主要内容: 二叉树遍历(先序.中序.后序.宽度优先遍历)的迭代实现和递归实现: 二叉树的深度,二叉树到叶子节点的所有路径: 首先,先定义二叉树类(python3),代码如下: class TreeNo ...

  3. ThinkPHP---插件highcharts

    [一]概论 (1)介绍 基于jquery开发的国外图标插件,统计图,折线图,饼状图等常常用到. 国内也有一款类似插件echarts,由百度开发. (2)官网:www.highcharts.com    ...

  4. BZOJ 1058: [ZJOI2007]报表统计 multiset + 卡常

    Code: #include<bits/stdc++.h> #define maxn 600000 #define inf 1000000000 using namespace std; ...

  5. 常用的HTTP测试工具谷歌浏览器插件汇总

    网页的开发和测试时最常见的测试就是HTTP测试,作为曾经的测试人员在这方面还是略知一二的.其实做网页测试工作是非常繁琐的时期,有时候甚至是无聊重复的,如果没有网页测试工具的帮助的话,测试人员会越做越怀 ...

  6. js之DOM间接操作

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  7. 调用subprocess调用shell命令时屏蔽标准输出

    import os, subprocessp = subprocess.Popen(args, stdout = subprocess.PIPE,stderr = subprocess.STDOUT)

  8. rsync+sersync自动同步备份数据

    一.为什么要用Rsync+sersync架构?1.sersync是基于Inotify开发的,类似于Inotify-tools的工具2.sersync可以记录下被监听目录中发生变化的(包括增加.删除.修 ...

  9. 正确的在循环list的时候删除list里面的元素

    s = [1,2,3,4,5] for i in s: s.remove(i) print(s)   输出结果:[2, 4] 1.当第一次删除后,后面的元素会前移,此时s=[2,3,4,5], 2.然 ...

  10. PYGAME学习笔记_01

    01_使用PYGAME创建图形窗口 1.1_游戏的初始化和退出 pygame.init() 写入并初始化所有PYGAME模块,使用其他模块之前,必须先调用init方法 pygame.quit() 卸载 ...