9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

メモ : 【Java】ディレクトリの中身を確認する

Posted at

#背景
ディレクトリの中に入ってるデータを確認したり抽出したりしたいなーと思ったので、
その際のコードを書き残します。

こんなイメージ.png

#ディレクトリの中身を全部書き出す
今回はCドライブのtedkuma/BOXというディレクトリの中を確認します。こんなファイルが入ってます。
1.png

test.java
import java.io.File;

public class test {

  public static void main(String[] args) {

    File dir = new File("C:/tedkuma/BOX");  //Fileクラスのオブジェクトを生成し対象のディレクトリを指定
    File[] list = dir.listFiles();          //listFilesを使用してファイル一覧を取得
    for(int i=0; i<list.length; i++) {
      // System.out.println(list[i].toString());     //フルパス
      System.out.println(list[i].getName());      //ファイル名のみ
    }
  }
}

上のコードを実行すると…BOXディレクトリの中に入ってる
csvファイル、pngファイル、新しいフォルダーというディレクトリ 全部書き出されました。
2.png

System.out.println(list[i].getName());.getName() の部分を .toString() に書き換えると
こんな感じでファイル名がフルパスで取得できます。
3.png

#ファイルだけを書き出す
今度はディレクトリは書き出さずに、ファイルだけを書き出します。
 ファイルだったら ~する  ディレクトリだったら ~する 
  if(list[i].isFile()){ と **if(list[i].isDirectory()){**というのを追加しています。
if(list[i].isDirectory()){ のところには何も書いてないのでディレクトリは書き出さないってことです。

test.java
import java.io.File;

public class test {

  public static void main(String[] args) {
    
    File dir = new File("C:/tedkuma/BOX");
    File[] list = dir.listFiles();
    for(int i=0; i<list.length; i++) {
      if(list[i].isFile()) {          //ファイルの場合
        System.out.println(list[i].getName());
      }
      else if(list[i].isDirectory()) { //ディレクトリの場合
        //何もしない
      }
    }
  }
}

実行してみます。ディレクトリ以外が出力されました。
4.png

#CSVファイルだけを書き出す
contains()を使うと文字列が含まれているかを調べることが出来ます。
上で**.getName()してファイル名が取得できているので、その後ろにcontains()を付けて文字列を探します。
CSVを見つけたいので
.csv**が含まれていたら という風に書いています。

test.java
import java.io.File;

public class test {

  public static void main(String[] args) {

    File dir = new File("C:/tedkuma/BOX");
    File[] list = dir.listFiles();
    for(int i=0; i<list.length; i++) {
      if(list[i].getName().contains(".csv")) {
        System.out.println(list[i].getName());
      }else{
        //何もしない
      }
    }
  }
}

実行してみます。pngやディレクトリは書きこまれず、csvファイルのみが書き出されています。
5.png

#ファイル名に★が含まれるファイルを書き出す
上のと全く一緒なんですけど、念のため…
**".csv""★"**に変えただけです。

test.java
import java.io.File;

public class test {

  public static void main(String[] args) {

    File dir = new File("C:/tedkuma/BOX");
    File[] list = dir.listFiles();
    for(int i=0; i<list.length; i++) {
      if(list[i].getName().contains("★")) {
        System.out.println(list[i].getName());
      }else{
        //何もしない
      }
    }
  }
}

実行してみます。ファイル名に★がついたファイルだけが書き出されました~:grinning:
6.png

今回は以上です。

9
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
11

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?