文件(File类)
一、 File类的概述和构造方法
File类的概述:
文件和目录路径名的抽象表示形式
构造方法:
File(String pathname):根据一个路径得到File对象
File(String parent, String child):根据一个目录和一个子文件/目录得到File对象
File(File parent, String child):根据一个父File对象和一个子文件/目录得到File对象
演示:
1. File file = new File("D:\\IdeaProjects\\作业\src\\myhomework\\HomeWork.java") ;
2. File file2 = new File("D:\\IdeaProjects\\作业\\src\\myhomework, "HomeWork.java") ;
3. File file3 = new File("D:\\IdeaProjects\\作业\\src\\myhomework") ;
File file4 = new File(file3 , "HomeWork.java") ;
路径:
绝对路径:带有盘符号的详细路径
相对路径:不带盘符号的路径
./当前路径
../当前路径的上一级路径
../../上两级
二、File类常用方法
1、与创建相关的方法
file.createNewFile();
file.mkdir();
file.mkdirs();
2、删除相关的方法
file.delete();
3、重命名相关方法
file.renameTo(file1);
4、判断功能
file.isFile();
file.isDirectory();
file.exists();
file.canRead();
file.canWrite();
file.isHidden();
file.canExecute();
file.isAbsolute();
5、关于获取的方法
file.getName();
file.length();
file.getAbsolutePath();
file.getAbsoluteFile();
file.getPath();
file.getParent();
file.getParentFile();
file.getTotalSpace();
file.getFreeSpace();
file.lastModified();
file.list();
file.listFiles();
三、案例
import java.io.File;
public class MyTest {
public static void main(String[] args) {
File file = new File("C:\\Users\\73256\\Desktop","新建文件夹");
boolean f1 = rename(file,".txt",".doc");
System.out.println(f1);
File file1 = new File("C:\\Users\\73256\\Desktop","新建文件夹");
boolean f = deleteFile(file1);
System.out.println(f);
}
private static boolean rename(File file,String oldSuffixName,String newSuffixName) {
boolean flag=false;
if(file==null||!file.exists()){
return false;
}
if(file.isFile()){
File file1 = new File(file.getParentFile(), file.getName().replace(oldSuffixName, newSuffixName));
file.renameTo(file1);
return true;
}
File[] files = file.listFiles();
for (File f : files) {
if(f.isFile()&&f.getName().endsWith(oldSuffixName)){
File file1 = new File(f.getParentFile(), f.getName().replace(oldSuffixName, newSuffixName));
boolean b = f.renameTo(file1);
flag=(!flag&&b);
}else {
rename(f,oldSuffixName,newSuffixName);
}
}
return flag;
}
private static boolean deleteFile(File file) {
if(file==null||!file.exists()){
return false;
}
if(file.isFile()){
file.delete();
return true;
}
File[] files = file.listFiles();
for (File f : files) {
if(file.isDirectory()){
deleteFile(f);
}
f.delete();
}
file.delete();
return !file.exists();
}
}