写文件和查找文件

来源:互联网 发布:java 微信支付开发 编辑:程序博客网 时间:2024/05/02 02:18
 

package com.javaio.test;

import java.io.File;
import java.io.FileFilter;
import java.util.ArrayList;
import java.util.List;

 

 


public class TestSearchFile {
 
 static int countFile;
 static int countFloder;
 
 public static File[] searchFile(File folder,final String keyword)
 {
  ////运用内部匿名类获得文件
  File[]  subFolders=folder.listFiles(new FileFilter(){
   public boolean accept(File pathname)
   {
    if(pathname.isFile())
     countFile++;
    else
     countFloder++;
    if(pathname.isDirectory()||(pathname.isFile()&&pathname.getName().contains(keyword)))
     return true;
    return false;
   }
  });
  
  List result =new ArrayList();
  for(int i=0;i<subFolders.length;i++)
  {
   if(subFolders[i].isFile())
   {
    result.add(subFolders[i]);
   }else
   {
    File[] foldResult=searchFile(subFolders[i],keyword);
    for(int j=0;j<foldResult.length;j++)
    {
     result.add(foldResult[j]);
    }
    
   }
  }
  File files[]=new File[result.size()];
  result.toArray(files);//集合数组化
  return files;
  
 }

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO Auto-generated method stub
  
  File f=new File("d:/export");
  
  
  File ff[]=searchFile(f, "test");
  
  System.out.println("查找了" + countFile + " 个文件," + countFloder
    + " 个文件夹,共找到 " + ff.length + " 个符合条件的文件:");
  
  for(int i=0;i<ff.length;i++)
  {
   File fff=ff[i];
   System.out.println(fff.getAbsolutePath());
  }
  
  System.out.println();
  

 }

}