【Java入門】FileのlistFilesでファイルを検索して一覧を取得

Javaではファイルやディレクトリの一覧を取得できるlistFilesメソッドがあります。ここでは、そんなlistFilesメソッドについて、以下の内容で解説していきます。

  • 【基礎】listFilesとは
  • 【基礎】listFilesの基本的な使い方
  • 【発展】listFilesの注意点
  • 【発展】指定したパスの一覧を取得する
  • 【発展】ファイルリストをフィルタリングする
  • などの応用的な使い方に関しても解説していきます。今回はそんなlistFilesメソッドについて、さまざまな方法をわかりやすく解説します!

    listFilesとは

    FileクラスlistFilesメソッドは、指定したディレクトリに含まれるファイルやディレクトリを配列として返します。

    listFilesメソッドを使用すれば、Fileクラスのオブジェクト配列に、ディレクトリやファイルを一覧として取得することができます。主に指定したパスの中身を調べたいときに使用します。

    listFilesの使い方

    以下にlistFilesメソッドを使用した、指定したパスに存在するファイル・ディレクトリを取得する方法を記述します。

    サンプルではFileクラスオブジェクト生成時の引数に、取得する対象のパスを指定し、listFilesメソッドを使用して一覧を取得しています。

    listFilesの注意点

    listFilesメソッドは、指定したパス名がディレクトリを示さない場合や、入出力エラーが発生した場合はnullを返します。もし、nullの状態でそのままファイルオブジェクト配列を参照すると、java.lang.NullPointerExceptionの例外が発生しますので、事前にnullチェックをしておいたほうが良いでしょう。

    以下にファイルのオブジェクト配列が、nullかチェックする方法を記述します。

    ディレクトリとファイルの一覧を取得する

    listFilesメソッドで取得したFileクラスのオブジェクトの配列が、ディレクトリかファイルか判別するには、FileクラスのisFileメソッドと、isDirectoryメソッドを使用します。isFileメソッドとisDirectoryメソッドは、それぞれ対象がファイルかディレクトリだったらtrueを返します。

    以下にlistFilesメソッドで取得したディレクトリの一覧を、ファイルとディレクトリで判別する方法を記述します。

    サンプルではlistFilesメソッドで取得した一覧を、ループで回してisFileメソッドとisDirectoryメソッドを使用して、ファイルまたはディレクトリか判別しています。

    ファイルリストをフィルタリングする

    listFilesメソッドを使用してファイルの一覧を取得するとき、特定の条件のファイルのみフィルタリングして取得したい場合があります。ファイルをフィルタリングする場合には、FilenameFilterクラスを使用すると、指定した条件のファイルを取得することができます。

    FilenameFilterクラスは、以下のパッケージをインポートします。

    以下にlistFilesメソッドを使用して、取得した一覧をFilenameFilterクラスを使用してフィルタリングする方法を記述します。

    サンプルで使用したファイルをフィルタリングするFilenameFilterクラスについては、以下の記事で詳しく解説しています!

    【Java入門】フィルタを使用してFileを一覧化する方法
    更新日 : 2017年6月9日

    Fileでの読み書き、コピー、deleteなどを紹介

    Fileクラスを使ったファイルの読み込み、書き込み、コピー、deleteやexistsメソッドの使い方などについては、こちらで詳しく解説しています。ぜひ参考にしてくださいね。

    JavaのFileクラスをマスター!基礎から便利な使い方まで総まとめ
    更新日 : 2019年5月10日

    まとめ

    ここではFileクラスのlistFilesメソッドについて、意味や基本的な使い方の説明、注意点や応用的な使い方について説明しました。listFilesメソッドは、取得したファイルやディレクトリを一覧化して、特定のファイルが存在するか調べるときによく使われます。

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

    LINEで送る
    Pocket

    最短でエンジニアを目指すなら侍エンジニア塾

    cta_under_bnr

    侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

    あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

    無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

    無料体験レッスンの詳細はこちら

    書いた人

    ヤマシタ

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

    おすすめコンテンツ

    あなたにぴったりなプログラミング学習プランを無料で診断!

    プログラミング学習の効率を劇的に上げる学習メソッドを解説