The deleteIfExists() method of java.nio.file.Files help us to delete a file if the file exists at the path. we pass the path of the file as a parameter to this method. This method will return true if the file was deleted by this method; false if the file could not be deleted because it did not exist.
If the file is a symbolic link then the symbolic link itself, not the final target of the link, is deleted. If the file is a directory then this method will delete that file only when the directory is empty. In some implementations, a directory has entries for special files or links that are created when the directory is created. In such implementations, a directory is considered empty when only the special entries exist. In such cases, Directories can be delete using this method. On some operating systems it may not be possible to remove a file when it is open and in use by this Java virtual machine or other programs.
Syntax:
public static boolean deleteIfExists(Path path) throws IOException
Parameters: This method accepts a parameter path which is the path to the file to deleted.
Return value: This method returns true if the file was deleted by this method; false if the file could not be deleted because it did not exist.
Exception: This method will throw following exceptions:
- DirectoryNotEmptyException – if the file is a directory and could not otherwise be deleted because the directory is not empty
- IOException – if an I/O error occurs
- SecurityException – In the case of the default provider, and a security manager is installed, the SecurityManager.checkdelete(String) method is invoked to check to delete access to the file
Below programs illustrate deleteIfExists(Path) method:
Program 1:
// 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(); } } } |
Before deleting the file: The file is present in the path “D:\\Work\\Test\\file1.txt”
Program 2:
// 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(); } } } |
References: https://docs.oracle.com/javase/10/docs/api/java/nio/file/Files.html#deleteIfExists(java.nio.file.Path)