Java IO流操作(III)——File类&案例一:输出制定目录下所有java文件名(包含子目录)&案例二:删除指定的目录(包含子目录)

1. File常用的构造

  •       File file = new File("字符串路径");

File f = new File("D:\\a\\b.txt");

  •       File file = new File("父路径的字符串表现形式","子路径的字符串表现形式");

File f2 = new File("D:\\a","b.txt");

  •       File file = new File(父路径的File对象,"子路径的字符串表现形式")

File parent = new File("D:\\a");

File f3 = new File(parent,"b.txt");

2. File创建功能

  •       boolean createNewFile():指定路径不存在该文件时时创建文件,返回true,否则返回false
  •       boolean mkdir():当指定的单级文件夹不存在时创建文件夹并返回true,否则返回false  
  •       boolean mkdirs():当指定的多级文件夹某一级文件夹不存在时,创建多级文件夹并返回true,否则返回false

      注意事项:
         不要以扩展名去区分文件或者文件夹;

3. File的删除功能

  •       boolean delete():删除文件或者删除单级文件夹

      注意事项:
        1.如果文件夹里面还有内容,不能删除成功;
        2.不走回收站;


4.判断方法

  •       boolean exists():判断指定路径的文件或文件夹是否存在
  •       boolean isAbsolute():判断当前路路径是否是绝对路径
  •       boolean isDirectory():判断当前的目录是否存在
  •       boolean isFile():判断当前路径是否是一个文件
  •       boolean isHidden():判断当前路径是否是隐藏文件

5.获取功能和修改名字功能

  •       File getAbsoluteFile():获取文件的绝对路径,返回File对象
  •       String getAbsolutePath():获取文件的绝对路径,返回路径的字符串
  •       String getParent():获取当前路径的父级路径,以字符串形式返回该父级路径
  •       File getParentFile():获取当前路径的父级路径,以字File对象形式返回该父级路径
  •       String getName():获取文件或文件夹的名称
  •       String getPath():获取File对象中封装的路径
  •       long lastModified():以毫秒值返回最后修改时间
  •       long length():返回文件的字节数
  •       boolean renameTo(File dest): 将当前File对象所指向的路径 修改为 指定File所指向的路径

6.其他获取功能

  •       String[] list():以字符串数组的形式返回当前路径下所有的文件和文件夹的名称
  •       File[] listFiles():以File对象的形式返回当前路径下所有的文件和文件夹的名称
  •       static File[] listRoots():获取计算机中所有的盘符

案例一输出指定目录下所有的java文件名(包含子目录)

import java.io.File;

/*
 * 需求:输出指定目录下所有的java文件名(包含子目录)
 */
public class RecurrenceTest {
	public static void main(String[] args) {
		File f = new File("src");
		//File f = new File("src\\com\\itheima_01\\RecurrenceDemo.java");
		method(f);
	}
	
	public static void method(File file) {
		if(file.isDirectory()) {
			File[] files = file.listFiles();
			for (File f : files) {
				//判断是否是文件对象
				if(f.isFile()) {
					if(f.getName().endsWith(".java")) {
						System.out.println(f.getName());
					}
				}
				else if(f.isDirectory()){
					//是一个目录对象
					method(f);
				}
			}
		}
	}
	
	
	//输出指定目录下的所有java文件名(不包含子目录)
	public static void method2(File file) {
		if(file.isDirectory()) {
			File[] files = file.listFiles();
			for (File f : files) {
				//判断是否是文件对象
				if(f.isFile()) {
					if(f.getName().endsWith(".java")) {
						System.out.println(f.getName());
					}
				}
			}
		}
	}
	
}

 

 

案例二删除指定的目录(包含子目录)

import java.io.File;

/*
 * 需求:删除指定的目录(包含子目录)
 * 
 * 注意:如果要删除一个目录,则需要先删除这个目录下的所有子文件和子目录
 * 
 */
public class RecurrenceTest2 {
	public static void main(String[] args) {
		File f = new File("d:\\a");
		method(f);
	}
	
	//删除指定目录下所有文件和目录
	public static void method(File file) {
		if(file.isDirectory()) {
			//干掉自己所有的子文件和子目录
			//获取所有的子文件和子目录
			File[] files = file.listFiles();
			for (File f : files) {
				if(f.isFile()) {
					//直接干掉他
					System.out.println(f.getName());
					f.delete();
				}
				else if(f.isDirectory()) {
					//继续查看是否还有文件和子目录
					method(f);
				}
			}
			
			//干掉自己
			System.out.println(file.getName());
			file.delete();
		}
	}
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值