方法 | 说明 |
---|---|
public boolean createNewFile() | 当具有该名称的文件不存在时,创建一个由该抽象路径命名的新空文件 |
public boolean mkdir() | 创建由此抽象路径命名的目录 |
public boolean mkdirs() | 创建由此抽象路径命名的目录,包括任何必须但不存在的父目录 |
eg:
public static void main(String[] args) throws IOException {
//当具有该名称的文件不存在时,创建一个由该抽象路径命名的新空文件(创建文件)
//如果父目录不存在,则会创建不成功
File file1 = new File("C:\\Users\\Administrator\\Desktop\\test\\test01\\test01.java");
System.out.println(file1.createNewFile());
//创建由此抽象路径命名的目录(创建文件夹)
//如果父目录不存在,则会创建不成功
File file2 = new File("C:\\Users\\Administrator\\Desktop\\test\\test02");
System.out.println(file2.mkdir());
//创建由此抽象路径命名的目录,包括任何必须但不存在的父目录(创建目录,没有指定的父目录也会一起创建)
File file3 = new File("C:\\Users\\Administrator\\Desktop\\test\\test03\\qize");
System.out.println(file3.mkdirs());
}
方法 | 说明 |
---|---|
boolean isDirectory() | 判断是否是文件夹 |
boolean isFile() | 判断是否是文件 |
boolean exists() | 判断文件是否存在 |
eg:
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\test\\test01\\test01.java");
if(file.isDirectory()){
System.out.println("是文件夹");
}else{
System.out.println("不是文件夹");
}
if(file.isFile()){
System.out.println("是文件");
}else{
System.out.println("不是文件");
}
if(file.exists()){
System.out.println("文件是存在的");
}else{
System.out.println("文件不存在");
}
}
方法 | 说明 |
---|---|
String getAbsolutePath() | 获取绝对路径 |
String getPath() | 获取抽象路径名转化路径名字符串 |
String getName() | 获取文件或文件夹的名称 |
String[] list() | 获取目录下所有内容,返回字符串数组 |
File[] getlistFiles() | 获取目录下的所有内容,返回File对象数组 |
eg:
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\test\\test01\\test01.java");
//获取绝对路径
System.out.println(file.getAbsolutePath());
//获取相对路径
System.out.println(file.getPath());
//获取文件或文件夹的名称
System.out.println(file.getName());
File file2 = new File("C:\\Users\\Administrator\\Desktop\\test\\test01");
//获取目录下所有内容,返回字符串数组
String[] list = file2.list();
for(String s:list){
System.out.println(s);
}
//获取目录下的所有内容,返回File对象数组
File[] files = file2.listFiles();
for(File f:files){
System.out.println(f);
}
}
public static void main(String[] args) throws IOException {
File file = new File("Test05.java");
System.out.println(file.createNewFile());
System.out.println(file.getAbsolutePath());
System.out.println(file.getPath());
}
方法 | 说明 |
---|---|
boolean delete() | 如果删除路径是一个文件则可以直接删除。如果删除路径是一个目录,不能够直接删除目录。需要先删除该目录下的所有内容,最后才能删除目录。 |
eg:
public static void main(String[] args) {
File file1 = new File("C:\\Users\\Administrator\\Desktop\\test\\test01");
//文件夹无法直接删除,因为该文件夹里还有文件,需要先删除该目录下的全部内容,然后才能删除该目录
System.out.println(file1.delete());
File file2 = new File("C:\\Users\\Administrator\\Desktop\\test\\test01\\test03.java");
//文件test03.java可以直接删除
System.out.println(file2.delete());
}
采用递归算法遍历目录
eg:
public class Test06 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\test");
getAllFile(file);
}
/**
* 使用递归算法遍历目录
* @param file
* @return
*/
public static void getAllFile(File file){
//1、根据listFiles()方法获取到目录下的file集合
File[] files = file.listFiles();
//2、files数组如果为null,则结束
if(files == null){
return;
}
//3、遍历该目录中所有内容
for(File f:files){
System.out.println(f.getAbsolutePath());
//4、如果为目录,则采用递归算法调用本身
if(f.isDirectory()){
getAllFile(f);
}
}
}
}
采用递归算法删除目录
eg:
public class Test07 {
public static void main(String[] args) {
File file = new File("C:\\Users\\Administrator\\Desktop\\test\\test03\\qize");
deleteFile(file);
}
/**
* 使用递归算法遍历目录
* @param file
* @return
*/
public static void deleteFile(File file){
//1、根据listFiles()方法获取到目录下的file集合
File[] files = file.listFiles();
//2、files数组如果为null,则结束
if(files == null){
return;
}
//3、遍历该目录中所有内容
for(File f:files){
//4、如果为目录,则采用递归算法调用本身
if(f.isDirectory()){
deleteFile(f);
}else {
System.out.println(f.getAbsolutePath());
//是文件则直接删除
f.delete();
}
}
//遍历结束后则代表文件已经全部删除了,这时可以直接删除文件夹了
file.delete();
}
}