我只显示特定文件夹中的所有文件..如何匹配文件名然后在java中显示

时间:2012-02-13 09:31:33

标签: java

   package my;

import java.io.File;
import java.io.FilenameFilter;

public class readfile {

    File root = new File("C:\\hpcl");
    String filename[] = {};
    FilenameFilter beginwith = new FilenameFilter() {

        @Override
        public boolean accept(File dir, String name) {
            return (name.startsWith("M") && name.endsWith(".TXT"));
        }
    };
 File root1 = new File("C:\\hpcl1");
  FilenameFilter beginwithR = new FilenameFilter() {

        @Override
        public boolean accept(File dir, String name) {
            return (name.startsWith("R") && name.endsWith(".TXT"));
        }
    };
    public void getDataM() {

        File[] files = root.listFiles(beginwith);
        int i = 0;
        String f1="";
        String f2[]={};
        System.out.println("Mfile");
        for (File f : files) {

              System.out.println(f.getName());



         }

    }
  public void getDataR() {

        File[] files = root1.listFiles(beginwithR);
        int i = 0;
        String f1="";
        String f2[]={};
        System.out.println("Mfile");
        for (File f : files) {

               System.out.println(f.getName());


         }
            }
public void matchfile()
    {


    }
    public static void main(String[] args) {
        my.readfile rl = new my.readfile();

        rl.getDataM();
        rl.getDataR();
           //System.out.print(rl.getData());



}
}

此程序显示.... getdataM方法显示所有从特定文件夹开始的M文件,getDataR()显示R文件.... 现在我想将M文件的初始字符更改为R,然后检查更多名称是否相同..如果它相同则显示只有R文件.... 所以帮我解决java程序....这个程序的方法必须在jsp页面显示...

2 个答案:

答案 0 :(得分:1)

它看起来像是一个功课,所以我不会给你一个完整的答案,但有些评论或建议:

  • 您班级的名称不正确:它应以大写字母开头,每个部分的第一个字母也应为大写字母。
  • 为什么不创建一个实现FileFilter的类,您可以在其中传递文件的模式以作为参数进行搜索?你对getData * X *方法也这样做。
  • 关于要扫描的目录的相同评论。它显然应该是一个参数。
  • 您的代码在控制台中显示文件名。有很多解决方案可以做你想要的:你的方法getData * X *可以返回一个你可以在JSP中显示的String(例如一个HTML列表),它们可以返回一个集合(为什么不直接在JSP中使用文件过滤器.. 。)并且最后但不限于你可以定义新标签。看看JSTL
  • 如果元素是文件或目录,那么在列表中查找应该是一个很好的想法。
  • 您还应该使您的代码具有防弹性。有一些Try {...} catch {...}缺少

答案 1 :(得分:0)

不确定我是否理解你的问题。 你想比较文件名的每个字符吗?

例如:  mobert.txt  richard.txt

在第一步中,莫贝尔成为罗伯特,之后你想比较o和i,b和c?!

如果您只想比较名称,您可以随时使用f1.getName()。equals(f2.getName());

对于每个char:

for (i=0; i<f1.getName().length+1; i++){
String compare1= f1.getName().subString(i,i+1);
String compare2= f2.getName().subString(i,i+1);
if(compare1.equals(compare2){
 return true;
else{
 return false;
    }
}

欢呼声