解決済み

Fileクラス

  • 困ってます
  • 質問No.839076
  • 閲覧数114
  • ありがとう数3
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 68% (1434/2088)

いろいろ調べてみたんですがよくわからないので教えてください。

File d = new File(".");
String[] f= d.list();

のようにして”・”カレントディレクトリの
ファイル名が取得できます。f[]の配列の中身がファイル名になります。
そこで、カレントディレクトリの、ある特定の拡張子のものだけ取り出せないかと、

File d = new File(".\\*.java");

(ここでは.javaのもの)
としたのですが、
java.lang.NullPointerException
のエラーがでてしまいます。
どのようにしたら、
*.java
のような特定の拡張子のファイル取得が出来ますでしょうか。

質問者が選んだベストアンサー

  • 回答No.1

あるサイトから昔パクったものですが、

File d = new File(".");
// FilenameFileter は無名インナクラス
String[] f = d.list(new FilenameFilter() {
  public boolean accept(File d, String name) {
    return (name.endsWith(".java"));
  }
});

でどうでしょう?

#あ、サイトが見つかった。→参考URL参照
補足コメント
azicyan

お礼率 68% (1434/2088)

取り急ぎありがとうございます。
endsWithと言うメソッドを使うのですね。
一度試してみて、お礼いたします。
投稿日時 - 2004-04-24 15:11:20

その他の回答 (全1件)

  • 回答No.2

ベストアンサー率 44% (29/65)

解決方法としては
No1さんが示してくれていますが。

結局、Fileクラスのコンストラクタは
実行時に唯一1つのファイルまたは、ディレクトリ
が特定できなければ
nullを返却するのじゃないでしょうか?
File d = new File(".\\*.java");

以下に示す2つの理由のどちらかで
nullを返却して
そのnullに対して、listメソッドを
発行しようとした結果
java.lang.NullPointerException
になったかもしれません。

理由1
「*.java」という名前を持つファイルが存在しない
とおもわれてしまった。

理由2
*.javaの意味自体は解釈したが、
それでは1つのファイルまたは、ディレクトリ
に特定できないと判断されてしまった。

以上
お礼コメント
azicyan

お礼率 68% (1434/2088)

ありがとうございました。

一度締め切ります。

わからなかったらまた質問させてください_(._.)_
投稿日時 - 2004-05-01 01:20:53
AIエージェント「あい」

こんにちは。AIエージェントの「あい」です。
あなたの悩みに、OKWAVE 3,500万件のQ&Aを分析して最適な回答をご提案します。

関連するQ&A
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する

特集

ピックアップ

ページ先頭へ