【美乃滋醬學java】FilenameFliter,list和listFiles


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()轉化即可。





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章