Webサイト制作コースのお申し込みはこちら Webサイト制作コースのお申し込みはこちら

Javaプログラムでは、ファイルやディレクトリを作成したり、不要となったものを削除したいといったケースはよくあります。

本記事では、Javaでファイルやディレクトリを削除する方法について、サンプルコードを掲載しながらご紹介していきます。

Javaでファイルを削除する方法


Javaでファイルを削除するには「Files」クラスから提供されている「delete」メソッドを利用します。

基本的な使い方

deleteメソッドを利用する場合、引数には「Path」クラスに設定したパスを指定することで、ファイルを削除することが出来ます。

記述法は下記のような形となります。

Paths path = Paths.get("ファイルのパス");
Files.delete(path);

実装サンプル

今回のサンプルでは、「target」フォルダに格納した「sample.txt」をJavaプログラムから削除してみたいと思います。

フォルダ構成

$ tree
.
├── bin
│   └── Main.class
├── src
│   └── Main.java
└── target
    └── sample.txt

実装

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
	
	public static void main(String[] args) {
		try {
			Path path = Paths.get("./target/sample.txt");
			
			Files.delete(path);
			
			System.out.println("ファイル削除に成功しました。");
			
		} catch(IOException ex) {
			ex.printStackTrace();
		}

	}
}

プログラムを実行すると、「ファイル削除に成功しました。」とコンソール結果に出力され、「sample.txt」ファイルが削除されています。

$ tree
.
├── bin
│   └── Main.class
├── src
│   └── Main.java
└── target

ファイル削除時の注意点

deleteメソッドでファイルを削除する際、対象のパスにファイルが存在しないと下記のエラーが発生してしまいます。

再度上記プログラムを実行してみましょう。

java.nio.file.NoSuchFileException: ./target/sample.txt

ファイルが存在しない場合のチェックに関しては、次に紹介する「deleteIfExists」メソッドを利用しましょう。

JavaのdeleteIfExistsメソッドでファイルを削除する


deleteメソッドを利用した場合、ファイルが存在しないとエラーが発生しますが、「deleteIfExists」メソッドでは存在した場合「true」を返却して削除、存在しなかった場合は「false」を返却します。

基本的な使い方

記述法はdeleteメソッドと同じで、Pathクラスを引数に設定して、削除するファイルパスを指定します。

Path path = Paths.get("ファイルパス");

if(Files.deleteIfExists(path)) {
  // ファイル存在時の処理
} else {
  // ファイルが存在しなかったときの処理
}

実装サンプル

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
	
	public static void main(String[] args) {
		try {
			Path path = Paths.get("./target/sample.txt");
			
			if(Files.deleteIfExists(path)) {
				System.out.println("ファイル削除に成功しました。");				
			}else {
				System.out.println("ファイルが存在しませんでした。");
			};

		} catch(IOException ex) {
			ex.printStackTrace();
		}

	}
}

ファイルが存在する場合

まずは上記プログラムを「sample.txt」が指定されたパスに存在する状態で実行してみましょう。

$ tree
.
├── bin
│   └── Main.class
├── src
│   └── Main.java
└── target
    └── sample.txt

実行した結果は下記です。

ファイル削除に成功しました。

ファイルが存在しない場合

再度フォルダ構成を確認してみましょう。

$ tree
.
├── bin
│   └── Main.class
├── src
│   └── Main.java
└── target

同じプログラムを実行すると、今度は結果が下記のように変わります。

ファイルが存在しませんでした。

Javaでディレクトリを削除する方法


Javaでディレクトリを削除する場合、ファイルを削除する場合と同じで「delete」または「deleteIfExists」が利用出来ます。

deleteメソッド

deleteメソッドで、ディレクトリを削除する方法は、引数に設定するパスをディレクトリで指定するだけです。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
	
	public static void main(String[] args) {
		try {
			Path path = Paths.get("./target");
			
			Files.delete(path);
			
			System.out.println("ディレクトリ削除が完了しました。");

		} catch(IOException ex) {
			ex.printStackTrace();
		}

	}
}

実行すると「ディレクトリ削除が完了しました。」とコンソールに表示され、ディレクトリが削除されます。

ポテパンダの一言メモ

ディレクトリ内が空でない場合、「java.nio.file.DirectoryNotEmptyException」エラーが発生するため注意が必要です。

deleteIfExistsメソッド

deleteIfExistsメソッドの場合、ディレクトリ内にファイルが存在する場合でも削除することが可能です。

$ tree
.
├── bin
│   └── Main.class
├── src
│   └── Main.java
└── target
    └── sample.txt

この状態で下記プログラムを実行してみます。

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;

public class Main {
	
	public static void main(String[] args) {
		try {
			Path path = Paths.get("./target");
			
			if(Files.deleteIfExists(path)) {
				System.out.println("ディレクトリ削除に成功しました。");				
			}else {
				System.out.println("ディレクトリが存在しませんでした。");
			};

		} catch(IOException ex) {
			ex.printStackTrace();
		}

	}
}

実行結果は「ディレクトリ削除に成功しました。」とコンソールに出力され、ディレクトリごとファイルも削除されます。

さいごに: Javaのdeleteメソッドを使ってファイル削除処理を試してみよう


本記事では、Javaでのファイル削除方法について、サンプルコードを掲載しながらご紹介してきました。

deleteメソッドを利用するかdeleteIfExistsメソッドを利用するかは、対象ファイルやディレクトリが存在しない場合などにどのような処理結果としたいかで使い分けましょう。

エンジニアになりたい人に選ばれるプログラミングスクール「ポテパンキャンプ 」

ポテパンキャンプは卒業生の多くがWebエンジニアとして活躍している実践型プログラミングスクールです。 1000名以上が受講しており、その多くが上場企業、ベンチャー企業のWebエンジニアとして活躍しています。

基礎的な学習だけで満足せず、実際にプログラミングを覚えて実践で使えるレベルまで学習したいという方に人気です。 プログラミングを学習し実践で使うには様々な要素が必要です。

それがマルっと詰まっているポテパンキャンプでプログラミングを学習してみませんか?

卒業生の多くがWebエンジニアとして活躍

卒業生の多くがWeb企業で活躍しております。
実践的なカリキュラムをこなしているからこそ現場でも戦力となっております。
活躍する卒業生のインタビューもございますので是非御覧ください。

経験豊富なエンジニア陣が直接指導

実践的なカリキュラムと経験豊富なエンジニアが直接指導にあたります。
有名企業のエンジニアも多数在籍し品質高いWebアプリケーションを作れるようサポートします。

満足度高くコスパの高いプログラミングスクール「ポテパンキャンプ」

運営する株式会社ポテパンは10,000人以上のエンジニアのキャリアサポートを行ってきております。
そのノウハウを活かして実践的なカリキュラムを随時アップデートしております。

代表の宮崎もプログラミングを覚えサイトを作りポテパンを創業しました。
本気でプログラミングを身につけたいという方にコスパ良く受講していただきたいと思っておりますので、気になる方はぜひスクール詳細をのぞいてくださいませ。