我想写个文件夹名匹配的程序,但是查了资料,不知道如何下手。求指导!
下面是读取某某文件夹下的第一层文件夹名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,如何匹配成功?。下面是我的想法
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"));
}}希望可以说仔细一下,我查了一下资料,说要正则表达式....
下面是读取某某文件夹下的第一层文件夹名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,如何匹配成功?。下面是我的想法
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"));
}}希望可以说仔细一下,我查了一下资料,说要正则表达式....
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;
}
{ //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:\test
File 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
这个可以用isDir~判断的,如果不使用的话,一个不怎么样的办法就是看文件的后缀名了,但文件夹也可以有点的,文件名也可以没点的,所以很不好的想法。
至于说是正则表达式来匹配文件夹,那也太玄了吧,这个不是说要匹配就可以匹配的,正则匹配的是字符,不是文件类型的