📜  带有示例的Java中的文件 deleteIfExists() 方法

📅  最后修改于: 2022-05-13 01:54:59.233000             🧑  作者: Mango

带有示例的Java中的文件 deleteIfExists() 方法

Java.nio.file.FilesdeleteIfExists()方法帮助我们在文件存在于路径时删除文件。我们将文件的路径作为参数传递给此方法。如果文件被该方法删除,该方法将返回true;如果文件因为不存在而无法删除,则返回 false。

如果文件是符号链接,则删除符号链接本身,而不是链接的最终目标。如果文件是目录,则此方法仅在目录为空时删除该文件。在一些实现中,目录具有用于在创建目录时创建的特殊文件或链接的条目。在这样的实现中,当仅存在特殊条目时,目录被认为是空的。在这种情况下,可以使用此方法删除目录。在某些操作系统上,当此Java虚拟机或其他程序打开并使用该文件时,可能无法删除该文件。

句法:

public static boolean deleteIfExists(Path path)
                   throws IOException

参数:此方法接受参数路径,该路径是要删除的文件的路径。

返回值:如果文件被该方法删除,该方法返回true;如果文件因为不存在而无法删除,则返回 false。

异常:此方法将抛出以下异常:

  1. DirectoryNotEmptyException – 如果文件是一个目录并且因为目录不为空而无法删除
  2. IOException – 如果发生 I/O 错误
  3. SecurityException – 如果是默认提供程序,并且安装了安全管理器,则会调用 SecurityManager.checkdelete(String) 方法来检查是否删除对文件的访问权限

下面的程序说明了 deleteIfExists(Path) 方法:
方案一:

// Java program to demonstrate
// java.nio.file.Files.deleteIfExists() method
  
import java.io.IOException;
import java.nio.file.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create object of Path
        Path path
            = Paths.get("D:\\Work\\Test\\file1.txt");
  
        // deleteIfExists File
        try {
  
            Files.deleteIfExists(path);
        }
        catch (IOException e) {
  
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
输出:

删除文件前:文件存在于路径“D:\\Work\\Test\\file1.txt”

删除文件后:文件为路径“D:\\Work\\Test\\file1.txt”中的deleteIfExistsd

方案二:

// Java program to demonstrate
// java.nio.file.Files.deleteIfExists() method
  
import java.io.IOException;
import java.nio.file.*;
  
public class GFG {
    public static void main(String[] args)
    {
  
        // create an object of Path
        Path pathOfFile
            = Paths.get("D:\\Work\\Test\\"
                        + "text1.txt");
  
        // delete both File if file exists
        try {
  
            boolean result
                = Files.deleteIfExists(pathOfFile);
  
            if (result)
                System.out.println("File is deleted");
            else
                System.out.println("File does not exists");
        }
        catch (IOException e) {
  
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}
输出:

参考: https: Java Java.nio.file.Path)