1、File类的判断文件类型、获取文件信息功能
| 方法名称 | 说明 |
|---|
| public boolean isDirectory() | 测试此 抽象路径名 表示的 File是否为 文件夹 |
| public boolean isFile() | 测试此 抽象路径名 表示的 File 是否为 文件 (狭义概念) |
| public boolean exists() | 测试此 抽象路径名 表示的 File 是否 存在 |
| public String getAbsolutePath() | 返回此 抽象路径名 的 绝对 路径 名字符串 |
| public String getPath() | 将此 抽象路径名 转换为 路径 名字符串 |
| public String getName() | 返回由此 抽象路径名 表示的 文件 或 文件夹 的 名称 |
| public long lastModified() | 返回文件 最后 修改 的 时间毫秒值 |
package com.csdn.d1_file;
import java.text.SimpleDateFormat;
public class FileMethodDemo {
public static void main(String[] args) {
File f1 = new File("F:\\IdeaProjects\\workspace\\file-io-app\\src\\com\\csdn\\d1_file\\FileMethodDemo.java");
File absoluteFile = f1.getAbsoluteFile();
System.out.println(absoluteFile);
String path = f1.getPath();
System.out.println(path);
String name = f1.getName();
System.out.println(name);
long length = f1.length();
System.out.println(length);
long l = f1.lastModified();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/ HH:mm:ss");
String format = sdf.format(l);
System.out.println(format);
System.out.println(f1.isDirectory());
System.out.println(f1.isFile());
System.out.println(f1.exists());
File file = new File("D:/csdn");
System.out.println(file.isFile());
System.out.println(file.isDirectory());
System.out.println(file.exists());
2、File类创建、删除文件的功能
| 方法名称 | 说明 |
|---|
| public boolean createNewFile() | 创建一个新的空的文件 |
| public boolean mkdir() | 只能创建一级文件夹 |
| public boolean mkdirs() | 可以创建多级文件夹 |
| public boolean delete() | 删除由此对象路径表示的 文件 或 空文件夹 |
- delete方法直接删除不走回收站;如果删除的是一个文件,且文件没有被占用则直接删除
- delete方法默认只能删除空文件夹
- delete方法,如果有多级目录,只能一级一级的删除,执行一次删除一层

3、File类的遍历功能
| 方法名称 | 说明 |
|---|
| public String[ ] list() | 获取当前 目录 下所有的“一级文件名称”到一个字符串数组中去返回。 |
| public File[ ] listFiles()(常用) | 获取当前 目录 下所有的“一级文件对象”到一个文件对象数组中去返回(重点) |
3.1、listFiles方法注意事项:
- 当调用者不存在时,返回null
- 当调用者是一个文件时,返回null
- 当调用者是一个空文件夹时,返回一个长度为0的数组
- 当调用者是一个 有内容的文件夹 时,将里面所有文件和文件夹的路径放在File数组中返回。(这是符号我们要求的)
- 当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容
package com.csdn.d1_file;
public static void main(String[] args) {
File f1 = new File("F:\\IdeaProjects");
System.out.println(Arrays.toString(f1.list()));
File[] files = f1.listFiles();
for (File file : files) {
System.out.println(file.getAbsolutePath());
File dir = new File("D:\\aaa");
System.out.println(Arrays.toString(dir.listFiles()));
D:\Java\jdk-17\bin\java.exe
[atguigujavaweb, basic-code, basic-code-code, DataStructures, DesignPattern, itcastjavaweb, JavaSenior, javaweb, JVMDemo, maven-basic, mybatis1, MySQL0724, spring1, tank, workspace, 基于Springboot大型物流运输企业库存管理系统]
F:\IdeaProjects\atguigujavaweb
F:\IdeaProjects\basic-code
F:\IdeaProjects\basic-code-code
F:\IdeaProjects\DataStructures
F:\IdeaProjects\DesignPattern
F:\IdeaProjects\itcastjavaweb
F:\IdeaProjects\JavaSenior
F:\IdeaProjects\maven-basic
F:\IdeaProjects\MySQL0724
F:\IdeaProjects\workspace
F:\IdeaProjects\基于Springboot大型物流运输企业库存管理系统
Process finished with exit code 0

4、如何遍历文件夹下的文件对象,使用哪个API,有什么特点?
- public File[ ] listFiles()(常用)
- 只能遍历当前文件夹对象下的一级文件对象