您好,登錄后才能下訂單哦!
這篇文章運用簡單易懂的例子給大家介紹java刪除文件和目錄的方法,代碼非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
delete()
方法可用于刪除文件或空目錄/文件夾,如果文件被刪除,delete()方法返回true,如果文件不存在則返回false。
如果刪除目錄,delete()
方法檢查目錄是否為空,如果目錄為空,則刪除目錄,否則delete()方法不會執行任何操作并返回false,所以在這種情況下,必須遞歸刪除所有文件,然后再刪除目錄。
刪除非空目錄的另一種方法是使用Files.walkFileTree()
方法,在這種方法中,可以逐個處理所有文件,并在單個文件對象上調用delete()
方法。
刪除文件示例:
package com.journaldev.files;import java.io.File;public class DeleteFileJava { /** * 此類顯示如何在Java中刪除文件 * @param args */ public static void main(String[] args) { // 帶路徑的文件名 File file = new File("tmp/tmp2/file.txt"); if(file.delete()){ System.out.println("tmp/tmp2/file.txt File deleted"); }else System.out.println("File tmp/tmp2/file.txt doesn't exist"); // 只提供文件名稱 file = new File("file.txt"); if(file.delete()){ System.out.println("file.txt File deleted from Project root directory"); }else System.out.println("File file.txt doesn't exist in the project root directory"); //relative path file = new File("temp/file.txt"); if(file.delete()){ System.out.println("temp/file.txt File deleted from Project root directory"); }else System.out.println("File temp/file.txt doesn't exist in the project root directory"); // 刪除空的目錄 file = new File("temp"); if(file.delete()){ System.out.println("temp directory deleted from Project root directory"); }else System.out.println("temp directory doesn't exist or not empty in the project root directory"); // 試圖刪除非空目錄 file = new File("D:/user/maxsu/project"); if(file.delete()){ System.out.println("D:/user/maxsu/project directory deleted from Project root directory"); }else System.out.println("D:/user/maxsu/project directory doesn't exist or not empty"); }}
注意:與createNewFile()不同,delete方法不會拋出IOException異常。
下面是一個簡單的程序,演示如何刪除非空目錄,如果目錄包含有文件,刪除目錄不會成功。
刪除目錄示例:
import java.io.File;public class JavaDeleteDirectory { public static void main(String[] args) { File dir = new File("D:/worksp/java/log"); if(dir.isDirectory() == false) { System.out.println("Not a directory. Do nothing"); return; } File[] listFiles = dir.listFiles(); for(File file : listFiles){ System.out.println("Deleting "+file.getName()); file.delete(); } //現在目錄為空,所以可以刪除它 System.out.println("Deleting Directory. Success = "+dir.delete()); }}
遞歸刪除目錄示例:
import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; public class JavaDeleteDirectoryRecursively { public static void main(String[] args) throws IOException { Path directory = Paths.get("D:/worksp/maxsu/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; } }); }}
關于java刪除文件和目錄的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。