请问怎样获得某个目录下的某种文件的文件名列表,如 *txt

解决方案 »

  1.   

    用File f = new File(path);f.listfile()
      

  2.   

    报错
    File dir = new File("E:\\db");
    Filter  filter=new Filter ("txt");
            String file[]=dir.list();
            for(int i=0;i<file.length;i++){
                File file1=new File(file[i]);
                if(file1.isFile())
                    System.out.println("file"+file1);
                else
                    System.out.println("sub directory "+file1);
                    
                }E:\test>javac test.java
    test.java:29: 找不到符号
    符号: 类 Filter
    位置: 类 test
      

  3.   

    import java.io.*;class OnlyExt implements FilenameFilter {
    String ext;

    public OnlyExt(String ext)
    {
    this.ext = "."+ext;
    }

    public boolean accept(File dir,String name)
    {
    return name.endsWith(ext);
    }
    }// 以下只显示.java 为扩展名的文件public class DirListOnly {
    public static void main(String[] args)
    {
    String dirname = "/java";
    File f1 = new File(dirname);
    FilenameFilter only = new OnlyExt("java");
    String s[] = f1.list(only);

    for (int i = 0; i < s.length; i ++)
    System.out.println(s[i]);
    }
    }
      

  4.   

    public static void main(String args[])
    {
       File f=new File("C://");
       f.listFiles(new FilenameFilter() {        public boolean accept(File dir, String name) {
                // TODO Auto-generated method stub
                return name.matches("*txt");//里面可以替换成任何正则表达式
            }        
           
       });
    }
      

  5.   

    File[] files = file.listFiles(new FileFilter() {
    public boolean accept(File file) {
    return !file.isDirectory()
    && file.getName().toLowerCase().endsWith(".txt");
    }
    });
      

  6.   

    那我怎么把这个File[] files 转换成String呢?
      

  7.   

    如果你要返回名字,用list,不要使用listFiles。不过这样后面的Filter要改一下函数接口