【Java】指定したパスがディレクトリかファイルかを調べる!(isDirectory/isFile)

指定したパスがディレクトリかファイルかを調べるにはFileクラスのisFileメソッドFileクラスのisDirectoryメソッドを使用します。

FileクラスのisFileメソッドは、指定したパスがファイルであるかどうかを判定するメソッドであり、FileクラスのisDirectoryメソッドは、指定したパスがディレクトリであるかどうかを判定するメソッドです。

そのため、指定したパスがディレクトリなのかファイルなのかを確認したい場合にisFileメソッドやisDirectoryメソッドを使用します。

今回はFileクラスのisFileメソッドとisDirectoryメソッドを使って以下の場合で指定したパスがディレクトリかファイルかを調べます。

⚫︎ 指定したパスがディレクトリかどうか調べる場合
⚫︎ 指定したパスがファイルかどうか調べる場合
⚫︎ 指定したパスにディレクトリやファイルが存在しない場合

また、Java7から使用できるようになったFilesクラスのisDirectoryメソッドisRegularFileメソッドを使って、指定したパスがディレクトリかファイルかを調べていきます。

isFileメソッドとは

FileクラスのisFileメソッドとは、指定したパスがファイルであるかどうかを判定するになります。

isFileメソッドの書き方

FileクラスのisFileメソッドの構文は下記となります。

まず、isFileメソッドが使用できるようにFileクラスをインポートします。

そして、Fileの後にisFileメソッドを呼び出すことでisFileの前に指定したFileのパスがファイルであるかどうかを判定します。

また、返り値として、指定したFileのパスがファイルである場合はtrueを返し、ファイルでない場合はfalseを返します。

isDirectoryメソッドとは

FileクラスのisDirectoryメソッドとは、指定したパスがディレクトリであるかどうかを判定するメソッドになります。

isDirectoryメソッドの書き方

FileクラスのisDirectoryメソッドの構文は下記となります。

まず、isDirectoryメソッドが使用できるようにFileクラスをインポートします。

そして、Fileの後にisDirectoryメソッドを呼び出すことでisDirectoryの前に指定したFileのパスがディレクトリであるかどうかを判定します。

また、返り値として、指定したFileのパスがディレクトリである場合はtrueを返し、ディレクトリでない場合はfalseを返します。

指定したパスがファイルかディレクトリかを調べるサンプルコード

指定したパスがファイルかディレクトリかを調べるサンプルコードを紹介します。

指定したパスがディレクトリかどうか調べる場合

Main.java

出力結果

c:/workはディレクトリである:true
c:/work/targetFile.txtはディレクトリである:false

isDirectoryメソッドによって指定したパスがディレクトリであるかを判定しています。

指定したパスがファイルかどうか調べる場合

Main.java

出力結果

c:/workはファイルである:false
c:/work/targetFile.txtはファイルである:true

isFileメソッドによって、指定したパスがファイルであるかを判定しています。

指定したパスにディレクトリやファイルが存在しない場合

Main.java

出力結果

c:/workはディレクトリである:false
c:/work/targetFile.txtはディレクトリである:false
c:/workはファイルである:false
c:/work/targetFile.txtはファイルである:false

ディレクトリ、または、ファイルが存在しない場合は、isDirectoryメソッドとisFileメソッドは「false」を返します。

NIO.2(Filesクラス)で指定したパスがファイルかディレクトリかを調べる場合

NIO.2とはJava7で導入された「java.nio.file」パッケージとそのサブパッケージとを合わせたものであり、NIO.2を使用することでとても簡単にファイル処理を行うことができます。

FilesクラスのisDirectoryメソッドはFileクラスのisDirectoryメソッド、FilesクラスのisRegularFileメソッドはFileクラスのisFileメソッドに対応します。
これらを使用することで、Fileクラスのメソッドと同様に判定することができます。

「C:¥work」以下に「targetFile.txt」を用意し、Main2.javaを実行します。

Main2.java

出力結果

c:/workはディレクトリである:true
c:/work/targetFile.txtはディレクトリである:false

c:/workはファイルである:false
c:/work/targetFile.txtはファイルである:true

isDirectoryメソッドによってpath1はtrueを返し、path2はfalseを返しています。
また、isRegularFileメソッドによってpath1はfalseを返し、path2はtrueを返しています。

今回のポイント

isDirectoryやisFileで指定したパスがファイルかディレクトリか調べる

指定したパスがディレクトリかファイルかを調べるにはFileクラスのisDirectoryメソッドとFileクラスのisFileメソッドを使用する。

⚫︎ FileクラスのisDirectoryメソッドで「File」のパスがディレクトリかどうかを判定することができる

⚫︎ FileクラスのisDirectoryメソッドで「File」のパスが普通のファイルかどうかを判定することができる

⚫︎ どちらのメソッドもディレクトリ、または、ファイルが存在しない場合は、falseを戻す

⚫︎ Filesクラスで指定したパスがファイルかディレクトリか調べるにはisDirectoryメソッドisRegularFileメソッドを使用する

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し