File类的定义
文件和目录路径名的抽象表示。
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():返回文件最后修改的时间毫秒值
File file1 = new File ("D:\\Users\\cczyan\\Desktop\\移通所有作业\\英语email.doc");
System.out.println (file1.isDirectory ());//false
System.out.println (file1.isFile ()); //true
System.out.println (file1.exists ()); //true
System.out.println (file1.getAbsolutePath ()); //D:\\Users\\cczyan\\Desktop\\移通所有作业\\英语email.doc
System.out.println (file1.getPath ()); //D:\\Users\\cczyan\\Desktop\\移通所有作业\\英语email.doc
System.out.println (file1.getName ()); //英语email
System.out.println (new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss").format (file1.lastModified ())); //2022-11-29 19:49:31
File file2 = new File ("src\\work\\cs.txt");
System.out.println (file2.exists ()); //true
System.out.println (file2.isDirectory ());//false
System.out.println (file2.isFile ()); //true
System.out.println (file2.getAbsolutePath ()); //D:\Java\eclipse\test1\src\work\cs.txt
System.out.println (file2.getPath ()); //src\work\cs.txt
System.out.println (file2.getName ()); //cs.txt
System.out.println (new SimpleDateFormat ("yyyy-MM-dd HH:mm:ss").format (file2.lastModified ())); //2023-03-19 09:20:10
File类创建文件的功能
- public boolean createNewFile():创建一个新的空的文件
- public boolean mkdir():只能创建一级文件夹
- public boolean mkdirs():可以创建多级文件夹
注意:File类创建文件或者文件夹的时候,如果该文件或者文件夹存在那么会返回false
File file1 = new File ("src\\work\\cs.txt");
System.out.println (file1.createNewFile ());//false
File file2 = new File ("src\\work\\cs1.txt");
System.out.println (file2.createNewFile ());
File file3 = new File ("D:\\Java\\eclipse\\test1\\src\\work\\cs");
System.out.println (file3.mkdir ());//true
File file4 = new File ("D:\\Java\\eclipse\\test1\\src\\work\\aa\\ss\\cc");
System.out.println (file4.mkdirs ());//true
File类的删除文件功能
public boolean delete():删除由此抽象路径名表示的文件或者空文件夹
注意:该方法只能删除空文件夹,如果文件夹内有文件则不能删除,且如果我们在删除文件时,文件被占用也可删除该文件,且该方法的删除不走回收站会直接删除。
File file1 = new File ("src\\work\\cs.txt");
System.out.println (file1.delete ());//true
File file3 = new File ("D:\\Java\\eclipse\\test1\\src\\work\\cs");
System.out.println (file3.delete ());//true
File file4 = new File ("D:\\Java\\eclipse\\test1\\src\\work");
System.out.println (file4.delete ());//false
File 类的遍历功能
- public String[] list():获取当前目录下所有的“一级文件名称”到字符串数组中去返回
- public File[] listFiles():获取当前目录下所有的“一级文件对象”到一个文件对象数组中去返回(重点且常用)
注意:
1、当调用者不存在的时候,返回null
2、当调用者只是一个文件的时候,返回null
3、当调用者是一个空的文件夹的时候,返回一个长度为0的数组
4、当调用者是一个有内容的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回
5、当调用者是一个有隐藏文件的文件夹时,将里面所有文件和文件夹的路径放在File数组中返回,包含隐藏内容
File file1 = new File ("src\\work");
String[] list = file1.list ();
for (String name : list) {
System.out.println (name);
}
/**
* aa
* cs1.txt
* example.java
* ProtoTypeCitation.java
* SingletonLazy.java
* Visitor.java
*/
File[] files = file1.listFiles ();
for (File file : files) {
System.out.println (file.getAbsolutePath ());
}
/**
* D:\Java\eclipse\test1\src\work\aa
* D:\Java\eclipse\test1\src\work\cs1.txt
* D:\Java\eclipse\test1\src\work\example.java
* D:\Java\eclipse\test1\src\work\ProtoTypeCitation.java
* D:\Java\eclipse\test1\src\work\SingletonLazy.java
* D:\Java\eclipse\test1\src\work\Visitor.java
*/
File file2 = new File ("E:");
System.out.println (file2.list ()); //当调用者不存在的时候返回null
File file3 = new File ("src\\work\\cs1.txt");
System.out.println (file3.list ()); //当调用者是一个文件时返回null
File file4 = new File ("src\\work\\aa\\ss\\cc");
System.out.println (Arrays.toString (file4.list ())); //当调用者是一个空文件夹时,返回长度为0的数组