Ebben a példában megtanulunk egy üres könyvtárat, egy nem üres könyvtárat és egy nem üres alkönyvtárral rendelkező könyvtárat törölni a Java-ban.
A példa megértéséhez ismernie kell a következő Java programozási témákat:
- Java fájl osztály
- Java rekurzió
1. példa: Java program egy üres könyvtár törléséhez
import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // delete the directory boolean result = directory.delete(); if(result) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )
A fenti példában delete()
az File
osztály módszerét használtuk a Directory nevű könyvtár törlésére .
Itt, ha a könyvtár van, akkor a Directory Deleted üzenet jelenik meg. Ellenkező esetben a Directory not found jelenik meg.
2. példa: Töröljön egy nem üres könyvtárat
A Java-ban egy nem üres könyvtár törléséhez először törölnünk kell a könyvtárban található összes fájlt. Ezután törölhetjük a könyvtárat.
import java.io.File; class Main ( public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); // list all the files in an array File() files = directory.listFiles(); // delete each file from the directory for(File file : files) ( System.out.println(file + " deleted."); file.delete(); ) // delete the directory if(directory.delete()) ( System.out.println("Directory Deleted"); ) else ( System.out.println("Directory not Found"); ) ) catch (Exception e) ( e.getStackTrace(); ) ) )
A fenti példában a for-each
ciklust használtuk a könyvtárban található összes fájl törlésére. Miután minden fájl törlődött, delete()
a könyvtár törléséhez használtuk a módszert.
3. példa: A nem üres könyvtár törlése rekurzív módon
import java.io.File; class Main ( public static void deleteDirectory(File directory) ( // if the file is directory or not if(directory.isDirectory()) ( File() files = directory.listFiles(); // if the directory contains any file if(files != null) ( for(File file : files) ( // recursive call if the subdirectory is non-empty deleteDirectory(file); ) ) ) if(directory.delete()) ( System.out.println(directory + " is deleted"); ) else ( System.out.println("Directory not deleted"); ) ) public static void main(String() args) ( try ( // create a new file object File directory = new File("Directory"); Main.deleteDirectory(directory); ) catch (Exception e) ( e.getStackTrace(); ) ) )
Tegyük fel, hogy van egy nem üres könyvtárunk, amelynek neve Directory. A Címtár tartalmaz 2 file1.txt és file2.txt nevű fájlt és egy nem üres alkönyvtárat, amelynek neve Alkönyvtár. Az alkönyvtár ismét tartalmaz egy file11.txt nevű fájlt.
Most, amikor futtatjuk a programot, a következő kimenetet kapjuk.
Directory file1.txt törölve Directory file2.txt törölve Directory alkönyvtár file11.txt törölve Directory alkönyvtár törölve Directory törölve
Itt először 2 fájlt törölnek, majd a rekurzív függvény törli az alkönyvtárban található fájlokat. Miután az alkönyvtár üres, törlődik. Végül a Directory törlődik.