OSDN Git Service

meven
[hayashilib/hayashi.git] / src / main / java / hayashi / tools / files / DeleteDir.java
diff --git a/src/main/java/hayashi/tools/files/DeleteDir.java b/src/main/java/hayashi/tools/files/DeleteDir.java
new file mode 100755 (executable)
index 0000000..60af61a
--- /dev/null
@@ -0,0 +1,52 @@
+package hayashi.tools.files;\r
+import java.io.*;\r
+\r
+/**\r
+ * 指定されたディレクトリを削除する。<br>\r
+ * java hayashi.tools.files.DeleteDir [directory]<br>\r
+ * <br>\r
+ * 指定されたディレクトリがない場合には例外をスローする<br>\r
+ * 削除権限がない場合には例外をスローする<br>\r
+ * <br>\r
+ * (注意)<br>\r
+ * ※ 指定されたディレクトリ内にファイル存在する場合も削除する。<br>\r
+ * ※ 指定されたディレクトリのサブディレクトリも削除対象とします。<br>\r
+ * ※ ディレクトリ自身も削除されます。<br>\r
+ */\r
+public class DeleteDir\r
+{\r
+    public static void main (String args[]) {\r
+        if (args.length < 1) {\r
+            System.out.println("hayashi.tools.files.DeleteDir [directory]");\r
+            return;\r
+        }\r
+        \r
+               try {\r
+                       DeleteDir.delete(new File(args[0]));\r
+               }\r
+               catch(Exception e) {\r
+                       e.printStackTrace();\r
+                       System.out.println(e.toString());\r
+               }\r
+    }\r
+    \r
+    public static void delete(File file) throws IOException {\r
+        if (!file.exists()) {\r
+            System.out.println("ERROR: ファイルまたはディレクトリが見つかりませんでした。");\r
+            throw new IOException("File not found.");\r
+        }\r
+        \r
+        if (file.isDirectory()) {\r
+            File files[] = file.listFiles();\r
+            if (files != null) {\r
+                for (int i=0; i < files.length; i++) {\r
+                    delete(files[i]);    // 再帰呼び出し\r
+                }\r
+            }\r
+        }\r
+        if (!file.delete()) {\r
+            System.out.println(" ... [ERROR!]");\r
+        }\r
+        return;\r
+    }\r
+}\r