File类的常用操作
File(String pathname)
:传递一个字符串
File(File parent, String child)
传递一个File对象,和一个字符串。第一个parent表示父级目录,child表示文件。
代码示例:
File parent = new File("test");
String f = "test.txt";
File file = new File(parent,f);
exists()
检验文件/文件夹是否存在,存在返回true,反之false
代码示例:
boolean isExists = file.exists();
mkdirs()
:创建多级目录,不会创建文件
代码示例:
//若是目录不存在
if(!parent.exists()){
parent.mkdirs();
}
createNewFile()
创建文件
提示:若目录不存在是无法创建文件的
代码示例:
//若不存在就创建一个文件
if(!file.exists()){
try {
file.createNewFile();//创建文件
} catch (IOException e) {
e.printStackTrace();
}
}
getAbsolutePath()
:获取文件的绝对路径
代码示例:
String absolutePath = file.getAbsolutePath();
System.out.println("absolutePath:"+absolutePath);
getPath()
;获取文件的相对路径
代码示例:
String path = file.getPath();
System.out.println("path:"+path);
canRead()
:检测文件是否可读
代码示例:
boolean canRead = file.canRead();
System.out.println("canRead"+canRead);
canWrite()
:检测文件是否可写
代码示例:
boolean canWrite = file.canWrite();
System.out.println("canWrite"+canWrite);
isHidden()
:检测文件是否是隐藏文件
代码示例:
boolean hidden = file.isHidden();
System.out.println("hidden"+hidden);
getName()
:获取文件名
提示:(有扩展名)
代码示例:
String name = file.getName();
System.out.println("name:"+name);
length()
:获取文件的大小
提示:(单位是byte)
代码示例:
long length = file.length();
System.out.println(length);
listFiles()
:获取文件夹下的所有文件
代码示例:
File[] files = parent.listFiles();
if (files == null) Arrays.stream(files).forEach(System.out::println);
File类重要的两个操作:
1.递归删除文件夹
/**
* 递归删除文件夹
* @param folder 文件夹目录
*/
public static void deleteFolder(File folder){
if (folder.isDirectory()){
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
deleteFolder(file);
}
}
}
}
folder.delete();
}
2.递归扫描文件夹
/**
* 递归扫描文件夹
* @param folder 文件夹目录
*/
public static void scanFolder(File folder){
if (folder.isDirectory()) {
for (File file : folder.listFiles()) {
scanFolder(file);
}
}
System.out.println(folder);
}