如果说一个文件夹下有很多文件 我要拿出我要的那个文件,但是那个文件的文件名前半部分是不确定 只有后面如这样“20090505-test.txt”中的-test是固定在的,现在怎么在多个文件中得到这个有-test的文件

解决方案 »

  1.   

    File File[] listFiles() 
              返回一个抽象路径名数组,这些路径名表示此抽象路径名表示的目录中的文件。 
     File[] listFiles(FileFilter filter) 
              返回抽象路径名数组,这些路径名表示此抽象路径名表示的目录中满足指定过滤器的文件和目录。 
      

  2.   

    根据1楼的给个例子:
    import java.io.*;public class FileOperation2
    {
    public static final void main(String[] args){
    String[] files  = new String[100];
    File search  = new File("searchThis");

    files = search.list(); for(String fn : files)
    System.out.println("found " + fn); File[]  roots = new File[100];
    roots = search.listRoots();
    for(File rt : roots)
    System.out.println("root: "+rt.toString()); System.out.println("file.getName() "+search.getName());
    System.out.println("file.toString() "+search.toString());
    System.out.println("file.getAbsolutePath() "+search.getAbsolutePath());
    System.out.println("file.lastModified() "+search.lastModified()); 
    System.out.println("file.toURI() "+search.toURI());
    //System.out.println("file.toURL() "+search.toURL());
    System.out.println("file.getParent() "+search.getParent()); System.out.println("Search with filter : file name equals to dir1");
    FileFilter ff = new myFileFilter();
    files = search.list(ff); for(String fn : files)
    System.out.println("found " + fn);
    }
    };class myFileFilter implements FileFilter
    {
    public boolean accept(File pathname){
    System.out.println("File.getName() "+pathname.getName());
    if(pathname.getName().equals("dir1")){
    return true;
    }else{
    return false;
    }

    }
    };
      

  3.   

    package filedemo;import java.io.FileFilter;
    import java.io.File;public class Main {
        public static FileFilter ListFileFilter = new FileFilter() {
            public boolean accept(File pathname) {
                if(pathname.isFile()) {
                    if(pathname.getName().substring(0, pathname.getName().indexOf(".")).endsWith("-test"))
                        return true;
                }
                return false;
            }
        };    public static void main(String[] args) {
            File file = new File("G:\\");
            File[] files = file.listFiles(ListFileFilter);        for(File f : files) {
                System.out.println(f.getAbsolutePath());
            }
        }
    }
      

  4.   

    File[] listFiles() 首先得到所有文件 
    getName()  得到所有文件名
    最后用for 比较
    str.endsWith("abc")//判断是否abc结尾
    str.startsWith("abc");//判断 是否abc开头  
    (先把后缀给去了哦)
    =====================
    或者你看下org.apache.commons.lang.StringUtils,里面有很多好用的方法
      

  5.   

    File file = new ("a.txt");//工作目录下存在的文件
    String s = file.getName();//用字符串s接收文件名
    System.out.println(s);//a.txt