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