Java-io-file-listfiles-filename-filter
提供:Dev Guides
Java.io.File.listFiles()メソッド
説明
- java.io.File.listFiles(FilenameFilter filter)*は、指定されたフィルターを満たすこの抽象パス名で示されるディレクトリ内のファイルおよびディレクトリを示す抽象パス名の配列を返します。
宣言
以下は* java.io.File.listFiles(FilenameFilter filter)*メソッドの宣言です-
public File[] listFiles(FilenameFilter filter)
パラメーター
*filter* -ファイル名フィルター
戻り値
このメソッドは、指定されたフィルターを満たす、この抽象パス名が示すディレクトリ内のファイルとディレクトリを示す抽象パス名の配列を返します。
例外
*SecurityException* -セキュリティマネージャが存在し、そのSecurityManager.checkRead(java.lang.String)メソッドがファイルへの読み取りアクセスを拒否する場合
例
次の例は、java.io.File.listFiles(FilenameFilter filter)メソッドの使用方法を示しています。
package com.finddevguides;
import java.io.File;
import java.io.FilenameFilter;
public class FileDemo {
public static void main(String[] args) {
File f = null;
File[] paths;
try {
//create new file
f = new File("c:/test");
//create new filename filter
FilenameFilter fileNameFilter = new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
if(name.lastIndexOf('.')>0) {
//get last index for '.' char
int lastIndex = name.lastIndexOf('.');
//get extension
String str = name.substring(lastIndex);
//match path name extension
if(str.equals(".txt")) {
return true;
}
}
return false;
}
};
//returns pathnames for files and directory
paths = f.listFiles(fileNameFilter);
//for each pathname in pathname array
for(File path:paths) {
//prints file and directory paths
System.out.println(path);
}
} catch(Exception e) {
//if any error occurs
e.printStackTrace();
}
}
}
上記のプログラムをコンパイルして実行すると、次の結果が生成されます-
c:\test\child_test.txt