ディレクトリに関するユーティリティ

公開日: : 最終更新日:2014/01/26 Java

ディレクトリに関するスニペットをいくつか書いた。いつかコピペする日が来ると思うのでメモしておく。

作成したスニペット

Gist に登録済み。

/**
 * ディレクトリを作成する。
 * 
 * @param 作成するディレクトリのパス
 * @throws IOException 
 */
public static File createDirectory(String path) throws IOException {
    File dir = new File(path);
    if(!dir.exists()) {
        FileUtils.forceMkdir(dir);
    }
    return dir;
}
 
/**
 * ディレクトリを削除する。
 * 
 * 指定したディレクトリが存在すれば削除する。
 * 
 * @param dir 削除するディレクトリ
 * @throws IOException ディレクトリの削除に失敗した場合
 */
public static void deleteDirectory(File dir) throws IOException {
    if(dir.exists()) {
        FileUtils.forceDelete(dir);
    }
}
 
/**
 * ディレクトリをコピーする。
 * 
 * コピー先のディレクトリは削除する。
 * コピー元に指定したディレクトリが存在しない場合は何もしない。
 * 
 * @param src コピー元のディレクトリ
 * @param dest コピー先のディレクトリ
 * @throws IOException ディレクトリのコピーに失敗した場合
 */
public static void copyDirectory(File src, File dest) throws IOException {
    if(!src.exists()) {
        return;
    }
    
    if(dest.exists()) {
        deleteDirectory(dest);
        FileUtils.forceMkdir(dest);
    }
    
    FileUtils.copyDirectory(src, dest);
}
 
/**
 * ディレクトリを移動する。
 * 
 * 移動先のディレクトリは削除する。
 * 移動元に指定したディレクトリが存在しない場合は何もしない。
 * 
 * @param src 移動元のディレクトリ
 * @param dest 移動先のディレクトリ
 * @throws IOException ディレクトリの移動に失敗した場合
 */
public static void moveDirectory(File src, File dest) throws IOException {
    if(!src.exists()) {
        return;
    }
    
    if(dest.exists()) {
        deleteDirectory(dest);
    }
    
    FileUtils.moveDirectory(src, dest);
}

使用したソフトウェアのバージョン

Java のバージョンは次の通り。

$ java -version
java version "1.7.0_11"
Java(TM) SE Runtime Environment (build 1.7.0_11-b21)
Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

あと、Commons IO の FileUtils も使っている。バージョンは次の通り。。。古いな。

<dependency>
    <groupId>commons-io</groupId>
    <artifactId>commons-io</artifactId>
    <version>1.4</version>
</dependency>

Googleアドセンス用(PC)

  • このエントリーをはてなブックマークに追加
  • follow us in feedly

関連記事

no image

ファイルに関するユーティリティ

ファイルに関するスニペットをいくつか書いた。いつかコピペする日が来ると思うのでメモしておく。 作成

記事を読む

GradleLogoReg

Gradle で Java アプリのプロジェクトを作成して Eclipse にインポートするまでの手順

Mac に SDKMAN! を使って Gradle をインストールしたので、実際にプロジェクトを作成

記事を読む

no image

画像ファイルのサイズ(縦横じゃなくて容量)を取得するスニペット

File#length で取得できるとは知らなかった。Gist にも登録済み。 /** * 画

記事を読む

no image

プロセスの起動を確認するプログラム

プロセスが起動しているかを確認するプログラムを Java で書いてみました。Excel のプロセス確

記事を読む

icatch-zip_524574337_mini-thumbnail

Java でファイルが1つだけ圧縮された zip を解凍するサンプル

ファイルが1つだけ圧縮された zip を解凍するサンプルです。 単一ファイルが圧縮された zip

記事を読む

no image

Exec Maven Plugin で maven コマンドでアプリを起動する

packaging タグに "jar" を指定した Maven プロジェクトをコマンドラインから起動

記事を読む

no image

ファイルの拡張子が JPG であるかを問い合わせるスニペット

特に目新しいこともないが、同じようなことをする機会があるかもしれないのでメモ。Gist にも登録済み

記事を読む

no image

Stream#filter()で絞り込みmap()で処理するコードスニペット

Java8 から導入された Stream API も少しずつ慣れてきて、「そういえばこういうパターン

記事を読む

no image

画像ファイルを選別するFilenameFilter

画像ファイルのみアップロードを許可する仕様があって、何てことはないがフィルターを作って対応したのでメ

記事を読む

medium_2055608272

指定した年月の日付を Calendar オブジェクトの一覧で取得する

小ワザです。 業務で、指定した年月の日付を Calendar オブジェクトの一覧で取得する必要があり

記事を読む

Googleアドセンス用(PC)

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


− 六 = 1

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Googleアドセンス用(PC)

icatch-jersey_multi_pathparams
Jerseyの@PathParamはスラッシュの間に複数指定できる

http://hoge-api/user/{id}.{format}

icatch-vagrant_box_customize
VagrantのBoxファイルをカスタマイズして独自のBoxファイルを作成する

配布されている Vagrant の Box ファイルを使って検証環境を

icatch-2015-006-1
バリデーションチェックにJava8のOptionalを使ってスマートに書く(自分比)

Web アプリのバリデーションチェックにアノテーションを使うことが増え

icatch-2015-005-1
ユニットテストの偏りを防ぐ命名規則の付け方

ユニットテスト名に以下の命名規則を付けるようにして二ヶ月ぐらい経った。

icatch-2015-004-1
Vagrantで起動したCentOS上のOctopressをホストOSから確認する設定

タイトルの通りだが、Vagrant を使って起動した CentOS に

→もっと見る

PAGE TOP ↑