1.File类

File类在java.io.File包中,所以要导入这个包。

File类中用到的方法:

boolean isDirectory()       测试此抽象路径名表示的文件是否是个目录

File[] listFiles()           返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件

File类中用到的常量:

public static final String separator    与系统有关的默认名称分隔符,这个字符串只表示一个字符:separatorChar

2.实现

第一种:

  1. package com.jn.test;
  2.  
  3. import java.io.File;
  4.  
  5. public class ListFile2 {
  6.  
  7. public static void main(String[] args) {
  8. // TODO Auto-generated method stub
  9. File file=new File("E:\\");
  10. for(File temp:file.listFiles()){
  11. if(temp.isDirectory()){
  12. System.out.println(temp.toString());
  13. }
  14. }
  15. }
  16. }

  结果:

  1. E:\$RECYCLE.BIN
  2. E:\360Downloads
  3. E:\BaiduNetdiskDownload
  4. E:\Dev
  5. E:\DTLFolder
  6. E:\eclipse
  7. E:\KwDownload
  8. E:\qq消息
  9. E:\System Volume Information
  10. E:\录屏视频
  11. E:\谷歌浏览器
  12. E:\迅雷下载

 第二种:

  1. package com.jn.test;
  2.  
  3. import java.io.File;
  4.  
  5. public class ListFile {
  6.  
  7. public static void main(String[] args) {
  8. // TODO Auto-generated method stub
  9. File file = new File("E:"+File.separator);
  10. list(file);
  11. }
  12. public static void list(File file)
  13. {
  14. if(file.isDirectory())//判断file是否是目录
  15. {
  16. File [] lists = file.listFiles();
  17. if(lists!=null)
  18. {
  19. for(int i=0;i<lists.length;i++)
  20. {
  21. list(lists[i]);//是目录就递归进入目录内再进行判断
  22. }
  23. }
  24. }
  25. System.out.println(file);//file不是目录,就输出它的路径名,这是递归的出口
  26. }
  27. }

  结果:(列出所有文件)

  1. E:\qq消息\All Users\QQ\Misc\QQSkin\21647
  2. E:\qq消息\All Users\QQ\Misc\QQSkin\22880\preview.png
  3. E:\qq消息\All Users\QQ\Misc\QQSkin\22880\skin.png
  4. E:\qq消息\All Users\QQ\Misc\QQSkin\22880
  5. E:\qq消息\All Users\QQ\Misc\QQSkin\23039\preview.png
  6. E:\qq消息\All Users\QQ\Misc\QQSkin\23039\skin.png
  7. E:\qq消息\All Users\QQ\Misc\QQSkin\23039
  8. E:\qq消息\All Users\QQ\Misc\QQSkin\23848\preview.png
  9. E:\qq消息\All Users\QQ\Misc\QQSkin\23848\skin.png
  10. E:\qq消息\All Users\QQ\Misc\QQSkin\23848
  11. E:\qq消息\All Users\QQ\Misc\QQSkin\23941\preview.png
  12. E:\qq消息\All Users\QQ\Misc\QQSkin\23941
  13. E:\qq消息\All Users\QQ\Misc\QQSkin\23947\preview.png
  14. E:\qq消息\All Users\QQ\Misc\QQSkin\23947\skin.png
  15. E:\qq消息\All Users\QQ\Misc\QQSkin\23947
  16. E:\qq消息\All Users\QQ\Misc\QQSkin\23977\preview.png
  17. E:\qq消息\All Users\QQ\Misc\QQSkin\23977\skin.png
  18. E:\qq消息\All Users\QQ\Misc\QQSkin\23977
  19. E:\qq消息\All Users\QQ\Misc\QQSkin\25007\preview.png
  20. E:\qq消息\All Users\QQ\Misc\QQSkin\25007\skin.png
  21. E:\qq消息\All Users\QQ\Misc\QQSkin\25007
  22. E:\qq消息\All Users\QQ\Misc\QQSkin\304372269\tabBkg.png
  23. E:\qq消息\All Users\QQ\Misc\QQSkin\304372269
  24. E:\qq消息\All Users\QQ\Misc\QQSkin\314668691\tabBkg.png
  25. E:\qq消息\All Users\QQ\Misc\QQSkin\859A53E11EBB21003FC612D5DA2ABD4A\skin.png
  26. E:\qq消息\All Users\QQ\Misc\QQSkin\859A53E11EBB21003FC612D5DA2ABD4A
  27. E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48\AC3F8F1D8C0DF36D666D082F79B69D48.zip
  28. E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48\config.xml
  29. E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48\skin.png
  30. E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48
  31. E:\qq消息\All Users\QQ\Misc\QQSkin
  32. E:\qq消息\All Users\QQ\Misc
  33. E:\qq消息\All Users\QQ\Perfre.db
  34. E:\qq消息\All Users\QQ\Registry.db
  35. E:\qq消息\All Users\QQ\Registry2.0.db
  36. E:\qq消息\All Users\QQ\Registry2.0.db-journal
  37. E:\qq消息\All Users\QQ
  38. E:\qq消息\All Users\Registry.db
  39. E:\qq消息\All Users
  40. E:\qq消息
  41. E:\System Volume Information
  42. E:\录屏视频\bandicam 2017-08-29 10-32-29-067.mp4
  43. E:\录屏视频\bandicam 2017-08-29 14-03-26-571.mp4
  44. E:\录屏视频\bandicam 2017-08-29 15-11-19-761.mp4
  45. E:\录屏视频\bandicam 2017-08-30 08-35-23-568.mp4
  46. E:\录屏视频\bandicam 2017-08-30 09-29-16-654.mp4
  47. E:\录屏视频\bandicam 2017-08-31 08-34-29-789.mp4
  48. E:\录屏视频\新建文件夹\2017-8-15 11-41-8.ASF
  49. E:\录屏视频\新建文件夹\2017-8-16 10-27-33.ASF
  50. E:\录屏视频\新建文件夹\对象-封装-继承
  51. E:\录屏视频\新建文件夹
  52. E:\录屏视频
  53. E:\谷歌浏览器\staruml\Untitled.uml
  54. E:\谷歌浏览器\staruml\Untitled.uml2.uml
  55. E:\谷歌浏览器\staruml\Untitled.uml3.uml
  56. E:\谷歌浏览器\staruml\Untitled.uml4.uml
  57. E:\谷歌浏览器\staruml
  58. E:\谷歌浏览器
  59. E:\迅雷下载
  60. E:\

 3.补充 

在temp目录下建立一个test.txt文件,在Windows下应该这么写:
File file1 = new File ("C:\tmp\test.txt");
在Linux下则是这样的:
File file2 = new File ("/tmp/test.txt");

如果要考虑跨平台,则最好是这么写:
File myFile = new File("C:" + File.separator + "tmp" + File.separator, "test.txt");

File类有几个类似separator的静态字段,都是与系统相关的,在编程时应尽量使用。

separatorChar

public static final char separatorChar

与系统有关的默认名称分隔符。此字段被初始化为包含系统属性 file.separator 值的第一个字符。在 UNIX 系统上,此字段的值为 '/';在 Microsoft Windows 系统上,它为 '\'。

separator

public static final String separator

与系统有关的默认名称分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 separatorChar。

pathSeparatorChar

public static final char pathSeparatorChar

与系统有关的路径分隔符。此字段被初始为包含系统属性 path.separator 值的第一个字符。此字符用于分隔以路径列表 形式给定的文件序列中的文件名。在 UNIX 系统上,此字段为 ':';在 Microsoft Windows 系统上,它为 ';'。

pathSeparator

public static final String pathSeparator

与系统有关的路径分隔符,为了方便,它被表示为一个字符串。此字符串只包含一个字符,即 pathSeparatorChar。

用Java代码列出一个目录下所有的文件的更多相关文章

  1. 如何用 Java 代码列出一个目录下所有的文件?

    如果只要求列出当前文件夹下的文件,代码如下所示: import java.io.File; class Test12 { public static void main(String[] args) ...

  2. 如何用Java代码列出一个目录下所有的文件?

    目录文件夹 File file=new File("H:\\"); for(File temp:file.listFiles()){//Java5的新特性之一就是增强的for循环. ...

  3. java 递归获取一个目录下的所有文件路径

    还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ...

  4. Java遍历一个目录下的所有文件

    Java遍历一个目录下的所有文件   Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其他流类不同的是,流类关心的是文件的内容,而File类关心的是磁盘上文件的存 ...

  5. Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序

    编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序,先把程序贴出来. #coding=utf-8 ''' Created on 2014年7月14日 @author: ...

  6. python 删除一个目录下的所有文件

    一个目录下有文件,文件夹,文件夹里又有文件.文件夹....用python脚本,实现,递归删除一个目录下的所有文件: 目录结构如下: 其中我们要删除所有文件 代码实现如下: import os CUR_ ...

  7. Linux递归解压缩一个目录下的全部文件

    gunzip -r hongchangfirst/data 怎样递归删除那些剩余的非log结尾的文件? 先列出确认一下: find hongchangfirst/data -type f ! -nam ...

  8. Python读取一个目录下的所有文件

    #!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...

  9. linux面试题:删除一个目录下的所有文件,但保留一个指定文件

    面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件 [root@oldboy xx]# touch ...

随机推荐

  1. Gradle Build速度加快方法汇总

    Android Studio用起来越来越顺手,但是却发现Build的速度实在不敢恭维,在google和度娘了几把(....)之后,大体就是分配更高的内存,步骤:Setting-->搜索gradl ...

  2. [转] iOS9系统自带字体

    Family: Thonburi Font: Thonburi-Bold Font: Thonburi Font: Thonburi-Light 1 2 3 4 Family: Khmer Sanga ...

  3. Spring MVC基础知识整理➣View与Controller数据交互

    概述 Spring MVC是由View—Controller—Model组成,其中View和Controller的数据交互,成为了关注的核心点.MVC中,我们将View中的数据传递到Controlle ...

  4. fputcsv导出大量数据

    <?php set_time_limit(0); ini_set('memory_limit', '128M'); $fileName = date('YmdHis', time()); hea ...

  5. 【CF724F】Uniformly Branched Trees

    题意:询问n个点的每个非叶子点度数恰好等于d的不同构的无根树的数目. n≤1000,d≤10n≤1000,d≤10. 题解: 这题真的是一道非常好的题 首先考虑有根树 定义f[i][j][k]表示i个 ...

  6. @+id/和android:id有什么区别?

    Any View object may have an integer ID associated with it, to uniquely identify the View within the ...

  7. 远程连接mongodb服务器

  8. sparkSQL将谓词推入kudu引擎

    kudu之所以执行非常快速,可以用来替代HDFS和Hbase等,一个主要原因是,我们可以将普通SQL中的谓词推入kudu引擎,这样kudu查询数据会变的非常快: 将谓词评估推入Kudu引擎可以提高性能 ...

  9. Python 经典类和新式类

    #!/usr/bin/env python# -*- coding:utf-8 -*-# 作者:Presley# 邮箱:1209989516@qq.com# 时间:2018-10-21# 新式类和经典 ...

  10. fillder--信息面板展示serverIP

    1.Ctrl+R打开面板 2.如上图的位置,加上一句后,重启Fillder即可 FiddlerObject.UI.lvSessions.AddBoundColumn(, "X-HostIP& ...