溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

java刪除文件和目錄的方法

發(fā)布時間:2020-06-25 11:24:59 來源:億速云 閱讀:500 作者:Leah 欄目:編程語言

這篇文章運(yùn)用簡單易懂的例子給大家介紹java刪除文件和目錄的方法,代碼非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

delete()方法可用于刪除文件或空目錄/文件夾,如果文件被刪除,delete()方法返回true,如果文件不存在則返回false。

如果刪除目錄,delete()方法檢查目錄是否為空,如果目錄為空,則刪除目錄,否則delete()方法不會執(zhí)行任何操作并返回false,所以在這種情況下,必須遞歸刪除所有文件,然后再刪除目錄。

刪除非空目錄的另一種方法是使用Files.walkFileTree()方法,在這種方法中,可以逐個處理所有文件,并在單個文件對象上調(diào)用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();
        }
        //現(xiàn)在目錄為空,所以可以刪除它
        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); // 有效,因?yàn)樗冀K是一個文件
               return FileVisitResult.CONTINUE;
           }
           @Override
           public FileVisitResult postVisitDirectory(Path dir, IOException exc) throws IOException {
               Files.delete(dir); //這將起作用,因?yàn)槟夸浿械奈募驯粍h除
               return FileVisitResult.CONTINUE;
           }
        });
    }}

關(guān)于java刪除文件和目錄的方法就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI