```java
import java.io.File;
import java.io.IOException;
//列出File的一些常用操作
public class testsys {
/**
* 遍历指定目录下(包括其子目录)的所有文件,并删除以 lastUpdated 结尾的文件
* @param dir 目录的位置 path
* @throws IOException
*/
public static void listDirectory(File dir) throws IOException {
if (!dir.exists())
throw new IllegalArgumentException("目录:" + dir + "不存在.");
if (!dir.isDirectory()) {
throw new IllegalArgumentException(dir + " 不是目录。");
}
File[] files = dir.listFiles();
if (files != null && files.length > 0) {
for (File file : files) {
if (file.isDirectory())
//递归
listDirectory(file);
else{ // 删除以 lastUpdated 结尾的文件
String fileName = file.getName();
boolean isLastupdated = fileName.toLowerCase().endsWith("lastupdated");
if (isLastupdated){
boolean is_delete = file.delete();
System.out.println("删除的文件名 => " + file.getName() + " || 是否删除成功? ==> " + is_delete);
}
}
}
}
}
public static void main(String[] args) throws IOException {
// 指定maven的本地仓库
listDirectory(new File("D:\\server\\maven\\repository"));
}
}
## 第一种情况:
关于if(!dir.exist())==1也就是的true的判断:
dir.exist()表示的是文件夹路径为空的时候表示0,也就是false
当文件夹路径不为空的时候,问价存在的时候,表示1,也就是为true
所以说,当文件夹为空的时候,表示false,所以进入不了if语句,只能进去else语句,
所以需要一个!符号,表示整个if为真;
所以if(!dir.exist()) 表示的是,当文件夹路径为空的时候,也就是文件不存在的时候,进入if语句
同理 if (!dir.isDirectory()) 表示的是,当文件路径不存在的时候,进入if 语句。
## 第二种情况:
/**
* if(b)相当于if(b==true);
* if语句中使用布尔值作为判断,只有当值为true时才会执行,
* 值为false跳过,不执行
* if(!b)等同于if(b==false)*/
if(b) { /*等同于(if==true);,因为b没有赋值,
默认值为false,所以不会执行该语句而是执行else;*/
System.out.println("取反运算符");
}else {
System.out.println("输出此运算符");
}