- Как удалить файл
- Удаление файла с помощью Files.delete
- Удаление файла с помощью Files.deleteIfExists
- Удаление файла с помощью FileUtils.deleteQuietly
- Исходный код
- Заключение
- In Java how to Delete Files, Folders from Windows, Mac OS X and Linux OS?
- Let’s get started:
- Look at these two directories and 5 files:
- Java Delete File | Remove | If Exists | Directory with Example
- Some Important Point:
- Java Delete File Example Or Java remove the file
- Java delete directory Example
- Question: How to Java delete the file if exists with the path.
Как удалить файл
Удалить файл в Java можно несколькими способами: с помощью стандартного API и с помощью сторонних библиотек. В этой статье мы рассмотрим три способа:
- с помощью Files.delete
- с помощью Files.deleteIfExists
- с помощью FileUtils.deleteQuietly
Примечание 1: если вместо файла передан путь к директории, указанная директория будет удалена, если она пуста.
Примечание 2: если вместо файла указана символическая ссылка, она будет удалена, но файл не будет затронут.
Удаление файла с помощью Files.delete
Первый способ удалить файл – это воспользоваться стандартным методом Files.delete:
Стоит заметить, что метод Files.delete может генерировать исключения, поэтому его придётся завернуть в блок try-catch. Например, если указанный файл не найден, будет сгенерировано исключение NoSuchFileException .
Удаление файла с помощью Files.deleteIfExists
Следующий способ – использовать метод Files.deleteIfExists, который возвращает true или false в зависимости от того, получилось ли удалить указанный файл:
Также метод Files.deleteIfExists отличается от Files.delete тем, что не выбрасывает исключение NoSuchFileException в случае, если файл не найден.
Удаление файла с помощью FileUtils.deleteQuietly
Следующий способ – использовать библиотеку Commons IO. Для этого нужно подключить библиотеку в проект:
И воспользоваться методом FileUtils.deleteQuietly:
FileUtils.deleteQuietly(new File("/home/alex/test"));
Этот метод не генерирует исключений в случае, если файл не найден или произошла другая ошибка при попытке удалить указанный файл.
Исходный код
import org.apache.commons.io.FileUtils; import java.io.File; import java.io.IOException; import java.nio.file.*; public class RemoveFile < public static void main(String[] args) < try < Files.delete(Paths.get("/home/alex/test")); >catch (IOException x) < System.err.println(x); >try < Files.deleteIfExists(Paths.get("/home/alex/test")); >catch (IOException e) < System.err.println(e); >FileUtils.deleteQuietly(new File("/home/alex/test")); > >
Заключение
В данной статье мы рассмотрели различные способы для того, чтобы удалить файл. Вы можете воспользоваться любым исходя из ваших требований.
In Java how to Delete Files, Folders from Windows, Mac OS X and Linux OS?
Sometime back I’ve written an article on how to remove /tmp or unnecessary files / folder on Linux automatically via script? Now it’s time to write the same utility for Windows environment.
In this tutorial we will go over all steps in details to delete Files and Folders on Windows OS, Mac OS X and Linux.
Let’s get started:
- Create file CrunchifyDeleteWindowsFileFolder.java
- Create crunchifyDeleteWindowsFolder(List of Directories) which first check for if directory exists or not? If exists then it will delete all files under it.
- Create crunchifyDeleteFiles(file) which deletes file.
Look at these two directories and 5 files:
- c:\crunchify folder
- crunchify-1.txt
- crunchify-2.txt
- crunchify-3.txt
- crunchify-4.txt
- crunchify-5.txt
- /Users/appshah/Downloads/file.ppsx
- /tmp/crunchify-file.txt
package crunchify.com.tutorial; import java.io.File; import java.io.IOException; /** * @author Crunchify.com * */ public class CrunchifyDeleteWindowsFileFolder < public static void main(String[] args) < // For Windows Provide Location: c:\\crunchify, c:\\temp // For Mac OS X Provide Location: /Users/appshah/Downloads/file.ppsx // For Linux Provide Location: /tmp/crunchify-file.txt String[] crunchifyDir = < "c:\\crunchify", "c:\\temp", "/Users/appshah/Downloads/file.ppsx", "/tmp/crunchify-file.txt" >; String result = crunchifyDeleteWindowsFolder(crunchifyDir); System.out.println("Result: " + result); > public static void crunchifyDeleteFiles(File myFile) throws IOException < if (myFile.isDirectory()) < // Returns an array of strings naming the files and directories in the directory denoted by this abstract // pathname. String crunchifyFiles[] = myFile.list(); for (String file : crunchifyFiles) < // Creates a new File instance from a parent abstract pathname and a child pathname string. File fileDelete = new File(myFile, file); // recursion crunchifyDeleteFiles(fileDelete); >> else < // Deletes the file or directory denoted by this abstract pathname. If this pathname denotes a directory, // then the directory must be empty in order to be deleted. myFile.delete(); System.out.println("File is deleted : " + myFile.getAbsolutePath()); >> public static String crunchifyDeleteWindowsFolder(String[] crunchifyDirectories) < try < for (String crunchifyDir : crunchifyDirectories) < File directory = new File(crunchifyDir); // Tests whether the file or directory denoted by this abstract pathname exists. if (!directory.exists()) < System.out.println("File does not exist: " + directory); >else < try < // recursion approached crunchifyDeleteFiles(directory); System.out.println("Cleaned Up Files Under Directory: " + directory + "\n"); >catch (IOException e) < e.printStackTrace(); System.exit(0); >> > return "Execution Complete"; > catch (Exception e) < return "Execution Failed"; >> >
As I ran this program on Windows machine I got this Result:
File is deleted : c:\crunchify\crunchify-1.txt File is deleted : c:\crunchify\crunchify-2.txt File is deleted : c:\crunchify\crunchify-3.txt Cleaned Up Files Under Directory: c:\crunchify File is deleted : c:\temp\crunchify-4.txt File is deleted : c:\temp\crunchify-5.txt Cleaned Up Files Under Directory: c:\temp File does not exist: /Users/appshah/Downloads/file.ppsx File does not exist: /tmp/crunchify-file.txt Result: Execution Complete
If you liked this article, then please share it on social media. Have a question or suggestion? Please leave a comment to start the discussion.
Java Delete File | Remove | If Exists | Directory with Example
In Application after use of file want a delete a file or director, but how and what are the best way to do it? In this tutorial, we will see the Java Delete File program example and little detail on it. The right way to do coding is very important.
java.io.File.delete()- A Java File delete() method will use to delete files or directory/folder (even empty). It will return boolean true if the file or directory deleted successfully.
Some Important Point:
When you are deleting a Java file or Directory, some caution is required.
- Check file and folder dependency.
- If Deleting directory then check to contain file using a loop statement.
- for safety check whether file using or not.
Note: We are considering a File means text, jpg, etc and Directory(folder) means contains many Files or folders or both.
Java Delete File Example Or Java remove the file
See the example, it will delete a file text file with named “newfile.txt”.
import java.io.File; public class DeleteFile < public static void main(String[] args) < //absolute file name with path File file = new File("newfile.txt"); if(file.delete())< System.out.println("File deleted"); >else System.out.println("File doesn't exists"); > >
Output: File deleted
See below: Code structure and how to run in gif presentation.
Java delete directory Example
In this example, we will cover 2 things first delete a file in java and second How java delete files in a directory.
Here is the file location. Where Doc is a directory having 2 files “img.png” and “test.txt“.
first, need to check whether the file exists or not then run the for loop or for-each loop and get the list of the file inside.
import java.io.File; public class DeleteFile < public static void main(String[] args) < File dir = new File("src/doc"); if (dir.isDirectory() == false) < System.out.println("No directory found"); return; >File[] listFiles = dir.listFiles(); for (File file : listFiles) < System.out.println("Deleting " + file.getName()); file.delete(); >//now directory is empty, so we can delete it System.out.println("Success height:30px" aria-hidden="true" >