OSDN Git Service

2019-02-11
[hayashilib/hayashi.git] / src / hayashi / tools / files / DeleteDir.java
1 package hayashi.tools.files;\r
2 import java.io.*;\r
3 \r
4 /**\r
5  * 指定されたディレクトリを削除する。<br>\r
6  * java hayashi.tools.files.DeleteDir [directory]<br>\r
7  * <br>\r
8  * 指定されたディレクトリがない場合には例外をスローする<br>\r
9  * 削除権限がない場合には例外をスローする<br>\r
10  * <br>\r
11  * (注意)<br>\r
12  * ※ 指定されたディレクトリ内にファイル存在する場合も削除する。<br>\r
13  * ※ 指定されたディレクトリのサブディレクトリも削除対象とします。<br>\r
14  * ※ ディレクトリ自身も削除されます。<br>\r
15  */\r
16 public class DeleteDir\r
17 {\r
18     public static void main (String args[]) {\r
19         if (args.length < 1) {\r
20             System.out.println("hayashi.tools.files.DeleteDir [directory]");\r
21             return;\r
22         }\r
23         \r
24                 try {\r
25                         DeleteDir.delete(new File(args[0]));\r
26                 }\r
27                 catch(Exception e) {\r
28                         e.printStackTrace();\r
29                         System.out.println(e.toString());\r
30                 }\r
31     }\r
32     \r
33     public static void delete(File file) throws IOException {\r
34         if (!file.exists()) {\r
35             System.out.println("ERROR: ファイルまたはディレクトリが見つかりませんでした。");\r
36             throw new IOException("File not found.");\r
37         }\r
38         \r
39         if (file.isDirectory()) {\r
40             File files[] = file.listFiles();\r
41             if (files != null) {\r
42                 for (int i=0; i < files.length; i++) {\r
43                     delete(files[i]);    // 再帰呼び出し\r
44                 }\r
45             }\r
46         }\r
47         if (!file.delete()) {\r
48             System.out.println(" ... [ERROR!]");\r
49         }\r
50         return;\r
51     }\r
52 }\r