用Java代码列出一个目录下所有的文件
1.File类
File类在java.io.File包中,所以要导入这个包。
File类中用到的方法:
boolean isDirectory() 测试此抽象路径名表示的文件是否是个目录
File[] listFiles() 返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件
File类中用到的常量:
public static final String separator 与系统有关的默认名称分隔符,这个字符串只表示一个字符:separatorChar
2.实现
第一种:
package com.jn.test;
import java.io.File;
public class ListFile2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file=new File("E:\\");
for(File temp:file.listFiles()){
if(temp.isDirectory()){
System.out.println(temp.toString());
}
}
}
}
结果:
E:\$RECYCLE.BIN
E:\360Downloads
E:\BaiduNetdiskDownload
E:\Dev
E:\DTLFolder
E:\eclipse
E:\KwDownload
E:\qq消息
E:\System Volume Information
E:\录屏视频
E:\谷歌浏览器
E:\迅雷下载
第二种:
package com.jn.test;
import java.io.File;
public class ListFile {
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("E:"+File.separator);
list(file);
}
public static void list(File file)
{
if(file.isDirectory())//判断file是否是目录
{
File [] lists = file.listFiles();
if(lists!=null)
{
for(int i=0;i<lists.length;i++)
{
list(lists[i]);//是目录就递归进入目录内再进行判断
}
}
}
System.out.println(file);//file不是目录,就输出它的路径名,这是递归的出口
}
}
结果:(列出所有文件)
E:\qq消息\All Users\QQ\Misc\QQSkin\21647
E:\qq消息\All Users\QQ\Misc\QQSkin\22880\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\22880\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\22880
E:\qq消息\All Users\QQ\Misc\QQSkin\23039\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23039\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23039
E:\qq消息\All Users\QQ\Misc\QQSkin\23848\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23848\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23848
E:\qq消息\All Users\QQ\Misc\QQSkin\23941\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23941
E:\qq消息\All Users\QQ\Misc\QQSkin\23947\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23947\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23947
E:\qq消息\All Users\QQ\Misc\QQSkin\23977\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23977\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\23977
E:\qq消息\All Users\QQ\Misc\QQSkin\25007\preview.png
E:\qq消息\All Users\QQ\Misc\QQSkin\25007\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\25007
E:\qq消息\All Users\QQ\Misc\QQSkin\304372269\tabBkg.png
E:\qq消息\All Users\QQ\Misc\QQSkin\304372269
E:\qq消息\All Users\QQ\Misc\QQSkin\314668691\tabBkg.png
E:\qq消息\All Users\QQ\Misc\QQSkin\859A53E11EBB21003FC612D5DA2ABD4A\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\859A53E11EBB21003FC612D5DA2ABD4A
E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48\AC3F8F1D8C0DF36D666D082F79B69D48.zip
E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48\config.xml
E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48\skin.png
E:\qq消息\All Users\QQ\Misc\QQSkin\AC3F8F1D8C0DF36D666D082F79B69D48
E:\qq消息\All Users\QQ\Misc\QQSkin
E:\qq消息\All Users\QQ\Misc
E:\qq消息\All Users\QQ\Perfre.db
E:\qq消息\All Users\QQ\Registry.db
E:\qq消息\All Users\QQ\Registry2.0.db
E:\qq消息\All Users\QQ\Registry2.0.db-journal
E:\qq消息\All Users\QQ
E:\qq消息\All Users\Registry.db
E:\qq消息\All Users
E:\qq消息
E:\System Volume Information
E:\录屏视频\bandicam 2017-08-29 10-32-29-067.mp4
E:\录屏视频\bandicam 2017-08-29 14-03-26-571.mp4
E:\录屏视频\bandicam 2017-08-29 15-11-19-761.mp4
E:\录屏视频\bandicam 2017-08-30 08-35-23-568.mp4
E:\录屏视频\bandicam 2017-08-30 09-29-16-654.mp4
E:\录屏视频\bandicam 2017-08-31 08-34-29-789.mp4
E:\录屏视频\新建文件夹\2017-8-15 11-41-8.ASF
E:\录屏视频\新建文件夹\2017-8-16 10-27-33.ASF
E:\录屏视频\新建文件夹\对象-封装-继承
E:\录屏视频\新建文件夹
E:\录屏视频
E:\谷歌浏览器\staruml\Untitled.uml
E:\谷歌浏览器\staruml\Untitled.uml2.uml
E:\谷歌浏览器\staruml\Untitled.uml3.uml
E:\谷歌浏览器\staruml\Untitled.uml4.uml
E:\谷歌浏览器\staruml
E:\谷歌浏览器
E:\迅雷下载
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代码列出一个目录下所有的文件的更多相关文章
- 如何用 Java 代码列出一个目录下所有的文件?
如果只要求列出当前文件夹下的文件,代码如下所示: import java.io.File; class Test12 { public static void main(String[] args) ...
- 如何用Java代码列出一个目录下所有的文件?
目录文件夹 File file=new File("H:\\"); for(File temp:file.listFiles()){//Java5的新特性之一就是增强的for循环. ...
- java 递归获取一个目录下的所有文件路径
还是日志的问题,log4j生成的日志文件,自动保存到月份所在的文件夹中,需要获取到所有的日志文件,包括文件夹 private List<String> ergodic(File file, ...
- Java遍历一个目录下的所有文件
Java遍历一个目录下的所有文件 Java工具中为我们提供了一个用于管理文件系统的类,这个类就是File类,File类与其他流类不同的是,流类关心的是文件的内容,而File类关心的是磁盘上文件的存 ...
- Python:遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序
编写了一个遍历一个目录下所有的文件及文件夹,然后计算每个文件的字符和line的小程序,先把程序贴出来. #coding=utf-8 ''' Created on 2014年7月14日 @author: ...
- python 删除一个目录下的所有文件
一个目录下有文件,文件夹,文件夹里又有文件.文件夹....用python脚本,实现,递归删除一个目录下的所有文件: 目录结构如下: 其中我们要删除所有文件 代码实现如下: import os CUR_ ...
- Linux递归解压缩一个目录下的全部文件
gunzip -r hongchangfirst/data 怎样递归删除那些剩余的非log结尾的文件? 先列出确认一下: find hongchangfirst/data -type f ! -nam ...
- Python读取一个目录下的所有文件
#!/usr/bin/python # -*- coding:utf8 -*- import os allFileNum = 0 def printPath(level, path): global ...
- linux面试题:删除一个目录下的所有文件,但保留一个指定文件
面试题:删除一个目录下的所有文件,但保留一个指定文件 解答: 假设这个目录是/xx/,里面有file1,file2,file3..file10 十个文件 [root@oldboy xx]# touch ...
随机推荐
- 统计各个数据库的各个数据表的总数,然后写入到excel中
1.最近项目基本进入最后阶段了,然后会统计一下各个数据库的各个数据表的数据量,开始使用的报表工具,report-designer,开源的,研究了两天,发现并不是很好使,最后自己下班回去,晚上思考,想着 ...
- Scala学习教程笔记三之函数式编程、集合操作、模式匹配、类型参数、隐式转换、Actor、
1:Scala和Java的对比: 1.1:Scala中的函数是Java中完全没有的概念.因为Java是完全面向对象的编程语言,没有任何面向过程编程语言的特性,因此Java中的一等公民是类和对象,而且只 ...
- Scala学习教程笔记二之函数式编程、Object对象、伴生对象、继承、Trait、
1:Scala之函数式编程学习笔记: :Scala函数式编程学习: 1.1:Scala定义一个简单的类,包含field以及方法,创建类的对象,并且调用其方法: class User { private ...
- tp3.2上传图片生成缩略图
//引入 use think\Image; /* * $name为表单上传的name值 * $filePath为为保存在入口文件夹public下面uploads/下面的文件夹名称,没有的话会自动创建 ...
- 期货大赛项目|四,MVC的数据验证
上图先看下效果 样式先不说,先了解下数据验证是怎么实现的 一 必须是强类型的视图 二 这些显示提示的话语,都在强类型的实体中 三 必须使用Html.BeginForm或者Html.AjaxBeginF ...
- uva 1232
题意: 建筑物在多长的部分是最高的成为该建筑物的覆盖度.求所有建筑物的覆盖度之和. 链接: https://vjudge.net/contest/202699#problem/E 题解: 这道题还是挺 ...
- python之requests urllib3 连接池
0.目录 1.参考 2. pool_connections 默认值为10,一个站点主机host对应一个pool (4)分析 host A>>host B>>host A pag ...
- Python_模块介绍
模块:一组或者一个.py文件实现了某个功能的代码集合 模块分为三种: 自定义模块 内置标准模块(又称标准库):Python自带的模块 开源模块:自己写的模块,有可以供人使用的功能 开源模块的集散地:P ...
- 51Nod1317 相似字符串对 容斥原理 动态规划
原文链接https://www.cnblogs.com/zhouzhendong/p/51Nod1317.html 题目传送门 - 51Nod1317 题意 称一对字符串(A,B)是相似的,当且仅当满 ...
- 最接近的三数之和(给定一个包括 n 个整数的数组 nums 和 一个目标值 target。找出 nums 中的三个整数, 使得它们的和与 target 最接近。返回这三个数的和)
例如,给定数组 nums = [-1,2,1,-4], 和 target = 1. 与 target 最接近的三个数的和为 2. (-1 + 2 + 1 = 2). 思路:首先对数组进行排序 ...