当前位置: 代码迷 >> J2SE >> 怎么匹配文件夹名字?求大神指点
  详细解决方案

怎么匹配文件夹名字?求大神指点

热度:198   发布时间:2016-04-24 02:28:38.0
如何匹配文件夹名字??求大神指点
我想写个文件夹名匹配的程序,但是查了资料,不知道如何下手。求指导!
下面是读取某某文件夹下的第一层文件夹名
Java code
import java.io.BufferedReader;import java.io.File;import java.io.InputStreamReader;public class ReadFileName {    private File f;    private String  path;    private File[] list;    public ReadFileName(){        f=null;        path="H:\\CDMS\\Docs";        f=new File(path);                 //新建文件读取文件夹下面的文件名        list=f.listFiles();    }    public  ReadFileName(String url){        f=null;        path="H:\\CDMS\\"+url;        f=new File(path);                 //新建文件读取文件夹下面的文件名        list=f.listFiles();            }    public void printFileName()    {        int i;        for(i=0;i<list.length;i++)        {            System.out.println(list[i].getAbsolutePath());        }    }    public File[] GetFileListName()    {        return list;//返回文件名列表    }    static public void main(String[] str)throws Exception{            ReadFileName rN=new ReadFileName("Docs");        rN.printFileName();    }}


但是匹配我就不知道如何匹配,比如,H:\\CDMS\\Docs 下,有个文件夹A,如何匹配成功?。下面是我的想法
Java code
import java.io.File;import ReadFileName.ReadFileName;public class MatchFileName {    private ReadFileName RFN;    private String InputFileName;    private File[] list;    public MatchFileName()    {        RFN=new ReadFileName();        list=null;    }        /**     * @author Administrator     * @param  匹配输入的文件名     */    public boolean MatchFilename(String name)    {        boolean bool=false;        String s="H:\\CDMS\\Docs\\"+name;        list=RFN.GetFileListName();        int i;        for(i=0;i<list.length;i++)        {            if(list[i].getAbsoluteFile().equals(s))            {                System.out.println(list[i].getAbsolutePath());                bool=true;            }            System.out.println(s);        }        return bool;            }    public static void main(String args[])    {        MatchFileName MFN=new MatchFileName();        System.out.println(MFN.MatchFilename("A"));    }}

希望可以说仔细一下,我查了一下资料,说要正则表达式....

------解决方案--------------------

Java code
public boolean MatchFilename(String name)    {        boolean bool=false;        String s="H:\\CDMS\\Docs\\"+name;        list=RFN.GetFileListName();        int i;        for(i=0;i<list.length;i++)        {            if(list[i].getAbsoluteFile().equals(s))//这里为什么要用getAbsoluteFile 换成getAbsolutePath试试            {                System.out.println(list[i].getAbsolutePath());                bool=true;            }            System.out.println(s);        }        return bool;            }
------解决方案--------------------
好长,没看完,是遍历文件夹么?为什么不用isDirectory()方法呢?再结合if,不就可以了
------解决方案--------------------
Java code
if(list[i].getAbsolutePath().equals(new File(s).getAbsolutePath())){ //or if (list[i].getName().equals(new File(s).getName()))    System.out.println(list[i].getAbsolutePath());    bool=true;}//getAbsoluteFile是获得该文件的绝对路径下的文件对象,如File f1 = new File("xxx");File f2 = f1.getAbsoluteFile(); //这里相当于File f2 = new File(f1.getAbsolutePath());//getAbsolutePath是获得该文件的绝对路径的文字字符串,如当前文件 H:\testFile f1 = new File("test");String path = f1.getPath(); //这里获得的是 test 路径,是相对路径,相对于当前路径的路径String abpath = f1.getAbsolutePath(); //这里获得的是 H:\test 路径,是绝对路径//getName是获得文件名File f1 = new File("H:\\test");String name = f1.getName(); //这里获得的是文件的名字 test
  相关解决方案