Java删除文件和文件夹
- delete 方法用于删除文件和空文件夹
- 如果想删除文件夹,必须保证文件夹中没有文件,也就是删除已有的文件或者文件夹
- 另一种删除一个非空文件夹的方法是
Files.walkFileTree()
方法
public class Test6 {
public static void main(String[] args) {
String fileSeparator = System.getProperty("file.separator");
String home = System.getProperty("user.home");
String absoluteFilePath = home+fileSeparator+"file.txt";
File file = new File(absoluteFilePath);
if(file.delete()){
System.out.println(absoluteFilePath +"文件被删除 deleted");
}else System.out.println( absoluteFilePath +"文件不存在");
file = new File("file.txt");
if(file.delete()){
System.out.println("file.txt 文件从工程根目录删除");
}else System.out.println("文件 file.txt 不存在工程根目录");
file = new File("temp/file.txt");
if(file.delete()){
System.out.println("temp/file.txt 文件从工程根目录删除了");
}else System.out.println("文件 temp/file.txt 在工程根目录不存在");
file = new File("temp");
if(file.delete()){
System.out.println("temp 目录从工程根目录删除了");
}else System.out.println("temp 目录不存在于工程根目录");
file = new File(absoluteFilePath);
if(file.delete()){
System.out.println(home + "删除");
}else System.out.println(home + "不存在或者不为空");
}
}
Java 删除文件夹
public class Test7 {
public static void main(String[] args) {
String fileSeparator = System.getProperty("file.separator");
String home = System.getProperty("user.home");
File dir = new File(home + fileSeparator + "log");
if(dir.isDirectory() == false) {
System.out.println(" 不是文件夹 直接返回");
return;
}
File[] listFiles = dir.listFiles();
for(File file : listFiles){
System.out.println("删除文件 "+file.getName());
file.delete();
}
System.out.println("删除文件夹. 结果为 = "+dir.delete());
}
}
Java 递归删除文件夹
public class Test8 {
public static void main(String[] args) throws IOException {
String fileSeparator = System.getProperty("file.separator");
String home = System.getProperty("user.home");
Path directory = Paths.get(home+fileSeparator+"log");
Files.walkFileTree(directory, new SimpleFileVisitor<Path>() {
@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attributes) throws IOException {
Files.delete(file);
return FileVisitResult.CONTINUE;
}
@Override
public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
Files.delete(dir);
return FileVisitResult.CONTINUE;
}
});
}
}
参考
- https://www.journaldev.com/830/java-delete-file-directory