FilenameFliter
方法:
accept
boolean accept(File dir, String name)
- 測試指定文件是否應該包含在某一文件列表中。
-
- 參數:
dir
- 被找到的文件所在的目錄。name
- 文件的名稱。- 返回:
- 當且僅當該名稱應該包含在文件列表中時返回
true
;否則返回false
。
用例:
public static void lis2()
{
File f1=new File("E:\\job\\eterm");
String[] etr=f1.list(new FilenameFilter()
{
public boolean accept(File f1,String name)
{
return name.endsWith(".bmp");
}
});
for(String hehe:etr)
{
System.out.println(hehe);
//System.out.println(new File(hehe).getAbsolutePath());
}
}
其中list方法可以直接得到目錄文件集合,也可以使用構造FilenameFilter去過濾不同文件後綴的文件。
運行得到 login.bmp
於是,我想知道如果用login.bmp這樣的文件區構造成一個文件夾類型,並返回其絕對路徑,會輸出什麼。
於是加上:
System.out.println(new File(hehe).getAbsolutePath());
運行,其發揮結果爲:E:\luna\study\login.bmp
可惜我打開該文件目錄,並沒有找到。that really canfussed me。
這個我並沒有找到答案,關於爲在該文件目錄下的文件沒有出現的東西,但是知道了如何返回其絕對路徑;
以下使用
listFiles
public File[] listFiles()
- 返回一個抽象路徑名數組,這些路徑名錶示此抽象路徑名錶示的目錄中的文件。
public static void lis2()
{
File f1=new File("E:\\job\\eterm");
File[] etr=f1.listFiles(new FilenameFilter()
{
public boolean accept(File f1,String name)
{
return name.endsWith(".bmp");
}
});
for(File hehe:etr)
{
System.out.println(hehe.toString());
System.out.println(hehe.getAbsolutePath());
}
}
注意到listFile()返回FIile類型,且打印時,轉換成字符,用toString()轉化即可。