【Java入門】file・directoryの削除で失敗しない方法(delete)

書いた人 ヤマシタ


侍エンジニア塾ブログは、未経験からWebアプリ開発と仕事獲得をサポートする
侍エンジニア塾のオウンドメディアです。
プログラミング学習を覗き見

こんにちは!フリーエンジニアのヤマシタです。

JavaのFileクラスにはファイルやディレクトリの削除を行うdeleteメソッドがあります。

この記事では、deleteメソッドについて

・deleteでファイルを削除する方法
・ファイル削除に失敗していないかの確認方法

という基本的な内容から、

・deleteでディレクトリを削除する方法
・ディレクトリの削除に失敗しない方法

などの応用的な内容に関しても解説していきます。

今回はそんなdeleteメソッドについて、さまざまな方法をわかりやすく解説します!

deleteとは

Fileクラスのdeleteメソッドは、指定したファイルを削除するためのメソッドです。

deleteメソッドは、boolean型の値を返します。

注意点としてファイルの削除処理は、実行してしまうと取り消し操作はできませんので、慎重に行う必要があります。

ファイルを削除する方法(deleteの使い方)

以下にdeleteメソッドを使用した、ファイル削除の基本的な使い方を記述します。

なお、Fileクラスを使用するにはjava.io.Fileをインポートする必要があります。

このサンプルコードでは、Fileクラスのインスタンスの引数に削除対象のファイル"/Users/Shared/java/java.txt”を指定し、deleteメソッドでファイルを削除しています。

ファイルの存在有無を確認する方法

ファイルを削除する前に削除対象のファイルが存在するか確認する場合は、Fileクラスのexistsメソッドを使用します。

ファイルの存在を確認する方法については、以下の記事で詳しく説明しています。

ファイル削除に失敗していないかの確認方法

deleteメソッドは、ただ実行しただけでは、ファイル削除に成功したかわかりません

前述したようにdeleteメソッドはboolean型の結果を返しますので、if文の中でdelete処理を記述すれば、ファイル削除に成功したか判断することができます。

実行結果:

このサンプルコードでは、if文を使用してファイル削除の判定可否を行っています。

また、Fileクラスのexistsメソッドを使用すれば、事前に対象のファイルが存在するか確認することができます。

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

ファイルではなくディレクトリを削除する場合は、ファイル削除と同じくdeleteメソッドを使用することで削除が可能です。

ディレクトリ削除時は、Fileクラスのインスタンスの引数にディレクトリパスを指定しておきます。

ディレクトリの削除に失敗しない方法

ディレクトリを削除する場合の注意点として、削除対象のディレクトリにサブディレクトリやファイルが存在すると、削除が失敗してしまいます。

そのため、対象のディレクトリを完全に削除するためには、まずディレクトリ配下のファイルやサブディレクトリを確認します。

そして存在する場合はディレクトリ内のファイルやサブディレクトリを先に削除しておく必要があります。

以下に指定したディレクトリを、完全に削除するサンプルを記述します。

実行結果:

このサンプルコードでは、fileClass.javaよりFileクラスのインスタンスで、削除対象のディレクトリを指定し、fileClassのオブジェクトを呼び出しています。

fileClassクラスでは、まずFileクラスのオブジェクトを指定して、ディレクトリ・ファイル存在チェックを行っています。

ディレクトリが存在した場合は、listFilesメソッドを使用して、ディレクトリ内の一覧を取得しています。

次にlistFilesメソッドで取得した要素分ループを回して、指定したディレクトリのファイルやサブディレクトリを、自身を呼び出して再帰的に削除しています。

ファイルを再帰的に削除する方法

ファイルを再帰的に削除する方法については、以下の記事でも解説しています。

Fileクラスについてもっと詳しく知りたい方へ

Fileクラスのさまざまな使い方については、以下の記事にまとめていますので、ぜひ参考にしてくださいね!

まとめ

ここでは、Fileクラスを使用した、ファイルやディレクトリを削除するdeleteメソッドについて説明しました。

ファイルの削除処理自体は、deleteメソッドを使用するだけで行えますが、完全に削除するためには、さまざまな処理を駆使しなければいけないことがわかって頂けたかと思います。

もしdeleteメソッドの使い方を忘れてしまったら、この記事を思い出してくださいね!

Javaカリキュラム無料公開中!
この記事はJava入門完全攻略ガイド【基礎学習/アプリ開発/仕事獲得】の一部になります。このカリキュラムは、プログラミング入門者が、基礎学習からアプリ開発、さらには仕事獲得まで体系的に学べる内容となっています。

Java学習に必要な情報を一つにまとめていますので効率よくJavaを学ぶことが出来ます。この機会に是非活用していただければと思います。


33歳、未経験だった僕がフリーエンジニアになれた理由
現在フリーでWEBエンジニアをやられている濱口直行さん。33歳で、プログラミングを学び始め、約半年という短い期間で独立までされた学習ログを余すことなくインタビューさせていただきました。

プログラミングを学習中の方はもちろん、独立をお考えの方まで幅広く活用できる記事になっています。この機会に是非活用していただければと思います。


最短でJavaを習得したい方へ

もし、あなたが、

「難しすぎて学習が全然進まない」
「学習量が膨大でゴールが見えない」
「エラーを解決するのに何日もかかってしまう」

など、プログラミング学習やキャリアに関してお困りであれば、まずは『無料体験レッスン』にお申し込み下さい。

あなたにとって、最適の解決策をご提案させていただきます。

詳しくは下の画像から詳しいサービス内容をご確認ください。

cta_bannar-java1

非常識な結果を出した卒業生

活躍する現役エンジニア

人気記事セレクション

LINEで送る
Pocket

この記事が気に入ったら
いいね!をしてフォローしよう

最新情報をお届けします

書いた人

ヤマシタ

フリーランスエンジニア。ITに関わるさまざまなコンテンツの企画・制作も行っています。
ITに関してはノウハウ系、ライフハック系、トレンド系など、今まで200本以上の執筆経験があります