無料で使えるシステムトレードフレームワーク「Jiji」 をリリースしました!

・OANDA Trade APIを利用した、オープンソースのシステムトレードフレームワークです。
・自分だけの取引アルゴリズムで、誰でも、いますぐ、かんたんに、自動取引を開始できます。

ファイル/デイレクトリを再帰的に削除する。

ファイル/ディレクトリを再帰的に削除する関数です。

  • File.delete()を使って削除します。
  • 存在するにもかかわらずFile.delete()で削除できなかった場合、deleteOnExit()を設定してVM終了時に削除を試みます。
  • デイレクトリは、中にファイルがあると削除できないため、先に消してから削除します。
/**
 * ファイル/ディレクトリを削除する。
 * @param root 削除対象
 */
public static final void clean( File root ) {
    if ( root == null || !root.exists() ) { return; }
    if ( root.isFile() ) {
        // ファイル削除
        if ( root.exists() && !root.delete() ) {
            root.deleteOnExit();
        }
    } else {
        // ディレクトリの場合、再帰する
        File[] list = root.listFiles();
        for ( int i = 0 ; i < list.length ; i++ ) {
            clean( list[i] );
        }
        if ( root.exists() && !root.delete() ) {
            root.deleteOnExit();
        }
    }
}

Javaだとちょい面倒ですね。ちなみにRubyだと2行で済みます。

require "fileutils"
FileUtils.rm_rf "./target"