File

File

java.io.File文件和目录路径名抽象表示形式. 目录也被叫做文件夹

常用构造方法

构造方法 说明
File(String path) path是文件或者目录的路径

注意: 如果new File(path)的时候, path路径一定要存在这个目录或文件

常用方法

返回值 方法 说明
long length() 文件字节量
boolean exists() 是否存在, 存在返回true
boolean isFile() 是否为文件夹, 是就返回true
boolean isDirectory() 是否为文件夹, 是返回true
String getName() 获取文件/目录名称
String getParent() 获取父目录的路径
String getAbsolutePath() 获取文件完整路径(绝对路径)
boolean createNewFile() 创建文件, 文件夹不存在会异常, 已存在返回false
boolean mkdirs() 创建多级文件夹, 例如a/b/c, 已存在返回false
boolean mkdir() 创建单层文件夹, 已存在返回false
boolean delete() 删除文件, 删除空文件夹
String[] list() 返回目录下的所有文件/目录名
File[] listFile() 返回目录下所有的文件/目录的对象

案例

案例介绍: 使用递归的方法, 查询指定目录的大小

public class Test6 {
	public static void main(String[] args) {
		String path = "C:\\Users\\zpk\\Desktop\\笔记"; // 指定目录
		File f = new File(path);
		System.out.println("\n总大小: " + method(f) + " 字节");
	}

	public static int method(File file) {		
		File[] files = file.listFiles(); // 获取当前目录下所有的文件和文件夹
		int s = 0; // 记录大小
		for (File f : files) { // 遍历目录 
			if (f.isDirectory()) { // 如果 是个目录, 继续调用method()
				System.out.println("\n进入 <" + f.getName() + "> 文件夹");
				s += method(f);
			} else { // 如果是个文件, 累计大小
				s += f.length();
				System.out.println("--->获取 <" + f.getName() + "> 的文件大小: [" + f.length() + " 字节]");
			}
		}
		return s; // 返回大小
	}
}

递归调用确实方便了代码的编写, 但是效率非常低. 递归一般也很少使用, 如果循环能解决的问题, 绝对不用递归

posted @ 2020-05-16 18:08  zpk-aaron  阅读(118)  评论(0编辑  收藏  举报