您的位置:首页 > 编程语言 > Java开发

Java基础知识之文件操作(一)——File类遍历文件夹

2017-03-26 21:54 1021 查看
1.创建文件夹和文件

File file1 = new File("test1");
File file2 = new File("test2/test2");
File file3 = new File("test3.txt");
//判断文件是否存在 如果不存在
if (!file1.exists()) {
//则创建一个文件夹
file1.mkdir();
}
//创建给定路径的多个文件夹
file2.mkdirs();
//创建文件
file3.createNewFile();


2.判断文件是文件夹还是文件,以及文件的可读可写权限

file1.isDirectory();//判断file对象对应的是否为目录(文件夹)
file1.isFile();		//判断file对象对应的是否为文件
file1.canRead();	//判断file对象所对应的文件和目录是否可读
file1.canWrite();	//判断file对象所对应的文件和目录是否可写


3.获取文件夹/文件的属性(修改时间,大小,以及路径)

路径相关

String path = file.getPath(); //得到File对象所对应的路径名
String path = file.getAbsolutePath(); //得到File对象所对应的绝对路径名
File file2 = file.getAbsoluteFile(); //得到File对象所对应的绝对路径
String parent = file.getParent(); 	//得到File对象文件所在的父路径名


文件的最后的修改时间

//得到File对象文件最后一次修改的时间 值为long 路径一定要正确,不然最后值为0
long time = file.lastModified();
//设置日期格式
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 EEEE HH:mm:ss");
//将long值转换为常规显示 最后得到值为 2017年03月04日 星期六 11:35:08
String date = sdf.format(time);

文件的大小:file.length()可以获得文件内容长度,想获得文件夹的大小可采用递归的方式

public static long getFileLength(File file) {
// 定义文件大小 值为long类型 得到的为字节
long size = 0;
// 列出文件夹下所有的文件
File[] files = file.listFiles();
// 如果文件为空
if (files == null) {
return 0;
}
// 遍历当前文件夹下所有的文件
for (File subfile : files) {
// 如果是文件夹
if (subfile.isDirectory()) {
// 递归调用自己,继续计算文件夹下文件的大小然后相加
size = size + getFileLength(subfile);
} else {
// 如果是文件则 直接获取文件内容长度然后相加
size = size + subfile.length();
}
}
return size;
}


4.遍历硬盘中的所有文件,找出以 mp3结尾的文件。

方法与获取文件夹大小一样,采用递归的方式

public static void referAllFile(File file) {
// 列出文件夹下所有的文件
File[] files = file.listFiles();
// 如果文件为空
if (files == null) {
return;
}
// 遍历当前文件夹下所有的文件
for (File subfile : files) {
// 如果是文件夹
if (subfile.isDirectory()) {
// 则递归调用,查找本文件夹下的文件内容
referAllFile(subfile);
} else {
// 如果是符合的文件则 直接打印路径
//subfile.getName()得到文件的名字
//subfile.getName().endsWith("mp3") 以mp3结尾的文件
//subfile.getName().contains("mp3") 包含mp3 字符的文件
if (subfile.getName().endsWith("mp3")) {
//此处直接打印
System.out.println(subfile.getName());
}
}
}
}

调用该方法

//获取系统盘名  就是C:\ D:\ E:\ F:\ 盘
File[] files = File.listRoots();
//遍历所有系统盘
for (File file : files) {
//调用referAllFile()方法 则可以遍历所有系统文件
referAllFile(file);
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: