Javaでファイルの存在を確認し、削除するにはFileクラスのexistsメソッドとdeleteメソッドを使用する。
このページではexistsとdeleteそれぞれのメソッドの使用方法をサンプルも含めてお伝えした。参考にしていただければと思う。
目次
Javaでファイルの存在確認と削除をする方法
JavaのFileクラスには、目的のファイルが目的の場所にあるのか、ないのかを確認する操作がある。どんな場合にこの操作を使うかというと、単にファイルがあることを確認することに加えて、ファイルを削除するような場合が考えられる。
ファイルの削除の場合、いきなりファイルを削除することもできるが、普通はファイルがあることを確認してから削除する。こうすれば、どんな原因で削除できなかったかがはっきりする。ファイルがないことが原因なのか、それともファイルを他のユーザが使用中で削除できないかなどの理由が明らかになる。
ファイルとディレクトリは違う
Fileクラスは、ファイルもディレクトリも同じメソッドで存在の確認や削除を行うことができる。しかし、削除するときファイルとディレクトリでは違うところがある。ディレクトリは、中身が空の時だけ削除できるという条件がある。この点の詳しい説明やサンプルは、「ファイルかディレクトリかを調べる」を見てほしい。
存在確認と削除のためのメソッド
存在確認と削除のために用意されているメソッドの詳細を見てみよう。
exists()
戻り値の型 |
public boolean |
内容 |
抽象パス名で示されたファイルかディレクトリが、存在するかどうかをテストする。
戻り値:true – 抽象パス名で示されたファイルかディレクトリが存在する場合に限る。false – その他の場合。
例外:SecurityException – もし、セキュリティマネジャーが存在して、itsSecurityManager.checkRead(java.lang.String)メソッドがそのファイルかディレクトリの読み込みアクセスを拒否したならば。 |
delete()
戻り値の型 |
public Boolean |
内容 |
抽象パス名で示されたファイルかディレクトリを削除する。
もし、このパス名がディレクトリを示すなら、そのディレクトリは削除のために空でなければならない。 注意点:ファイルが削除できなかったとき、FileクラスはdeleteメソッドがIOExceptionを投げるよう定義している。これは、ファイルが削除できなかった理由を調べたり、エラー報告したりするために有用です。
戻り値:true - もし、ファイルかディレクトリの削除に成功したなら。false – それ以外。
例外:SecurityException – もし、セキュリティマネジャーが存在して、SecurityManager.checkDelete(java.lang.String)メソッドがそのファイルかディレクトリの削除アクセスを拒否したならば。 |
ファイルの存在を確認するサンプルプログラム
それでは実際にサンプルプログラムを確認してみよう。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
import java.io.File; public class FileExists { public static void main(String[] args) { String pathname = "C:\\temp\\abc.txt";//[1] File file = new File(pathname);//[2] if (file.exists()) {//[3] System.out.println("[4]ファイル:[" + pathname + "]が存在します"); return;//[5] } System.out.println("[6]ファイル:[" + pathname + "]が存在しません"); } } |
実行結果
1 2 3 4 |
条件1:ファイル:C:\temp\abc.txtが存在する。 [4]ファイル:[C:\temp\abc.txt]が存在します 条件2:ファイル:C:\temp\abc.txtが存在しない。 [6]ファイル:[C:\temp\abc.txt]が存在しません |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
このプログラムは、ディレクトリ:C:\tempにあるabc.txtというファイルの存在確認をしている。
- [1] 文字列pathnameにファイルのパスと名前を設定する。
- [2] Fileクラスからpathnameをパス名に持つfileインスタンスを生成する。
- [3] existsメソッドにより、ファイルの存在を確認する。
- [4] ファイルが存在することを示すメッセージを表示する。
- [5] プログラムを終了する。
- [6] ファイルが存在しないことを示すメッセージを表示する。
ファイルの存在を確認し削除するサンプルプログラム
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
import java.io.File; public class FileExistsAndDelete { public static void main(String[] args) { String pathname = "C:\\temp\\abc.txt";//[1] File file = new File(pathname);//[2] if (!file.exists()) {//[3] System.out.println("[4]ファイル:[" + pathname + "]が存在しません"); return;//[5] } if (file.delete()) {//[6] System.out.println("[7]ファイル:[" + pathname + "]の削除に成功しました"); return;//[8] } System.out.println("[9]ファイル:[" + pathname + "]の削除に失敗しました"); } } |
実行結果
1 2 3 4 5 6 |
条件1:ファイル:C:\temp\abc.txtが存在する。 [7]ファイル:[C:\temp\abc.txt]の削除に成功しました 条件2:ファイル:C:\temp\abc.txtが存在しない。 [4]ファイル:[C:\temp\abc.txt]が存在しません 条件3:ファイル:C:\temp\abc.txtをエディタで編集中にプログラムを実行する。 [9]ファイル:[C:\temp\abc.txt]の削除に失敗しました |
サンプルプログラムの説明
それでは簡単にプログラムの解説をしてゆこう。
このプログラムは、ディレクトリ:C:\tempにあるabc.txtというファイルの存在確認を行う。その後、ファイルが存在して入れば、ファイルを削除するというものだ。
- [1] 文字列pathnameにファイルのパスと名前を設定する。
- [2] Fileクラスからpathnameをパス名に持つfileインスタンスを生成する。
- [3] existsメソッドにより、ファイルの存在を確認する。
- [4] ファイルが存在しないことを示すメッセージを表示する。
- [5] プログラムを終了する。
- [6] deleteメソッドにより、ファイルの削除を行う。
- [7] ファイルの削除が成功したことを示すメッセージを表示する。
- [8] プログラムを終了する。
- [9] ファイルの削除が失敗したことを示すメッセージを表示する。
まとめ
このページでは、Javaでファイルの確認と削除をする方法についてまとめてきた。
Fileクラスのexistsメソッドとdeleteメソッドを使えば実現できる。参考にしてサンプルプログラムから試してみてほしい。