JAVA中File类遍历目录解析

1,File对象用来获取或处理与磁盘文件相关的信息,例如权限,日期和目录路径。此外,File还浏览子目录层次结构。

2,File类常用API:

exists() :判断磁盘下有无此文件;

getName():返回此File对象所表示的文件名或目录名;
getPath():返回此File对象所对应的路径;
getAbsolutePath():返回此File对象所对应的绝对路径名;
getParent():返回此File对象对应目录(最后一级子目录)的父目录路径名;
renameTo(File newName):重命名此File对象对应的文件,如果重命名成功,返回true,否则返回false;
isFile():判断File对象指向的是否为一个文件;
isDirectory():判断File对象指向的是否为一个目录;
3,通过一个实例来测试部分方法(查询的文件为D盘下的360安全卫士):

<span style="font-size:18px;">package cn.edu.file;

import java.io.File;

public class file {
	public static void main(String[] args) {
	// 查询磁盘下的文件目录
	File file=new File("D:\\360安全卫士");
	//判断磁盘下有无此文件
	System.out.println(file.exists());
	//返回存在的文件
	System.out.println(file);
	//返回文件所对应的绝对路径名
	System.out.println(file.getAbsolutePath());
	//返回文件名
	System.out.println(file.getName());
	//返回父文件目录
	System.out.println(file.getParentFile());
	}
}</span>

结果:

true
D:\360安全卫士
D:\360安全卫士
360安全卫士
D:\

4,下面通过另外一个实例来讲解File类遍历目录,此目录为D盘下的电脑管家,实现代码如下:

package cn.edu.file;

import java.io.File;
import java.io.IOException;

public class FileUtils {
/*
* 列出file的一些常用操作,比如过滤、遍历等
* 下面列出指定目录下的所有文件
* 传的参数(File dir)在测试类中指定
*/
public static void listDirectory(File dir) throws  IOException{
	/*
	* exists()方法用于判断文件或目录是否存在
	* 当目录不存在,或存在但不是目录时抛出异常
	*/
	if (!dir.exists()) {
		throw new IllegalArgumentException("目录:"+dir+"不存在");
	}
	if (!dir.isDirectory()) {
		throw new IllegalArgumentException(dir+"不是目录");
	}
	//dir.list()或dir.listFiles()用于遍历子目录
	String[] filenames=dir.list();
	for (String str : filenames) {
		System.out.println(str);
		//此结果输出的是指定文件下的子目录名或文件名,但不输出子目录下的内容
	}
	System.out.println("-----------------------");
	
	/*
	* 如果要遍历子目录下的内容(子目录的子目录),就需要构造成File对象做递归操作
	* File提供了直接返回File对象的API
	*下面代码能够实现对此文件目录下的子目录实现详细查询
	*/
	File[] files=dir.listFiles(); //返回的是直接子目录的抽象
	//判断子目录下是否还有子目录
	if (files!=null&&files.length>0) {
		for (File file : files) {
			if (file.isDirectory()) {
				//递归操作
				listDirectory(file); 
			}else {
			System.out.println(file);
			}
		}
	}
   } 
}

5,再写一个测试类,来测试上面的代码:

package cn.edu.file;

import java.io.File;
import java.io.IOException;

public class FileUtilTest {
     public static void main(String[] args)  throws  IOException{
<span style="white-space:pre">	</span>// 在这里定义要查询的目录"d://电脑管家",对应上面的参数dir
<span style="white-space:pre">	</span>FileUtils.listDirectory(new File("d://电脑管家"));
     }
}

结果(部分):

d:\电脑管家\QQPCMgr\11.1.16908.217\Image\net_err.jpg
d:\电脑管家\QQPCMgr\11.1.16908.217\Image\point.png
d:\电脑管家\QQPCMgr\11.1.16908.217\Image\TPBackImage.png
d:\电脑管家\QQPCMgr\11.1.16908.217\Image\xp.png
d:\电脑管家\QQPCMgr\11.1.16908.217\Image\xpword.png
logodef.ico
MyPhone.ico
MyPhone_Notify.ico
softmgr.ico
softmgr_notify.ico
-----------------------
d:\电脑管家\QQPCMgr\11.1.16908.217\Images\logodef.ico
d:\电脑管家\QQPCMgr\11.1.16908.217\Images\MyPhone.ico
d:\电脑管家\QQPCMgr\11.1.16908.217\Images\MyPhone_Notify.ico
d:\电脑管家\QQPCMgr\11.1.16908.217\Images\softmgr.ico
d:\电脑管家\QQPCMgr\11.1.16908.217\Images\softmgr_notify.ico
d:\电脑管家\QQPCMgr\11.1.16908.217\jgImage.dll
d:\电脑管家\QQPCMgr\11.1.16908.217\jgIOStub.dll
d:\电脑管家\QQPCMgr\11.1.16908.217\kdce.exe
d:\电脑管家\QQPCMgr\11.1.16908.217\libexpatw.dll
d:\电脑管家\QQPCMgr\11.1.16908.217\libjpegturbo.dll

SysOptimize
SysSpeedUp
sysspeedupjmp
sysspeeduprtpplugin
sysstartupmgrjmp
TraceClear
-----------------------
QMAdFilter(big).png

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值