日期:2014-05-20 浏览次数:21040 次
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.List;
/**
 * 获取目录下txt文件名
 * @author shangzc
 *
 */
public class UpLoadFile implements FilenameFilter{
    
     private String prefix = "", suffix = "";
     public UpLoadFile(String filterstr) {
      filterstr = filterstr.toLowerCase();
      int i = filterstr.indexOf('*');
      int j = filterstr.indexOf('.');
      if (i > 0) {
       prefix = filterstr.substring(0, i);
      }
      if (j > 0) {
       suffix = filterstr.substring(j + 1);
      }
     }
     public boolean accept(File dir, String name) {
      // TODO Auto-generated method stub
      boolean yes = true;
      try {
       name = name.toLowerCase();
       yes = (name.startsWith(prefix)) & (name.endsWith(suffix));
      } catch (NullPointerException e) {
      }
      return yes;
     }
     /**
      * 得到目下文件的所有的txt
      * @param file
      * @return
      */
     public static List getPhotoName(File file) {
      List fileList = new ArrayList();
      FilenameFilter filter = new UpLoadFile("*.txt");
      File curdir = new File(file.getAbsolutePath(), "");
      String[] str = curdir.list(filter);
      return fileList;
     }
     /**程序的入口*/
     public static void main(String[] args)  {
    
     }
    }
------解决方案--------------------
public class FileFilter implements java.io.FileFilter {
	private String regex = "";//such as ".+\\.txt$|"
	
	public FileFilter() {
	}
	public FileFilter(String[] regex) {
		for(String reg : regex) {
			this.regex = ".+\\." + reg + "$|" + this.regex;
		}
	}
		@Override
	public boolean accept(File pathname) {
		// TODO Auto-generated method stub
		 String tmp=pathname.getName().toLowerCase();
		if(this.regex.length()>0)
			 return (tmp.matches(regex));
		 return true;
	}
}
String[] fileExt = {"txt","scc","avi","mp3"};//列取所有txt,scc,avi,mp3的文件
FileFilter ft = new FileFilter(fileExt);//arg2 is date scope
File file = new File("c:\\");
file.listFiles(filter);
------解决方案--------------------
给个比较简单的:
import java.io.File;
import java.util.ArrayList;
import java.util.List;
public class Test {
	List<String> list=new ArrayList<String>();
	public List<String> searchText(String folderPath) {
		//文件夹路径
		File path = new File(folderPath);
		
		String orgsuffix = ".txt";
		
		if (path.exists()) {
			//获取目录下的所有文件夹及目录
			File[] filePath = path.listFiles();
			for (File file : filePath) {
				//若是文件
				if (file.isFile()) {
					String fileName=file.getName();
					String suffix = fileName.substring(fileName.length() - 4);
					if (orgsuffix.equals(suffix)) {
						list.add(fileName);
					}
				}
				//若是文件夹
				else if(file.isDirectory()){
					//递归
					searchText(file.getPath());
				}
			}
		} else {
			System.out.println("搜索目录不正确");
		}
		return list;
	}
}