题目是:搜索某一文件夹下包含某字符串的文件名,保存到文本文件下面是程序,不过这个程序是列出所有文件的,要改成符合题目要求的
public class ListFiles { 
private static String listFileStr=""; 
public static void main(String[] args) { 
try 

File saveFile=new File(args[1]); 
FileWriter fw=new FileWriter(saveFile); 
ListFiles lf=new ListFiles(); 
lf.listFile(args[0]); 
fw.write(listFileStr); 
fw.close(); 

catch (ArrayIndexOutOfBoundsException ea) 

//参数提示 
System.out.println("Usage: ListFiles <source dir> <target file>"); } 
catch (IOException e) 

System.out.println("IO error!\r\n"+e.toString()); 
} } 
public void listFile(String rp) 
{ File file=new File(rp); 
File list[]=file.listFiles(); 
for(int i=0;i<list.length;i++) 

try 

if (list[i].isDirectory()) 

new ListFiles().listFile(list[i].toString()); 

else 

listFileStr+=list[i].getAbsolutePath()+"\r\n"; 
System.out.println(list[i].getAbsolutePath()); 


catch (Exception ex) 

listFileStr+="Access deny:"+list[i].getAbsolutePath()+"\r\n"; 
System.out.println("Access deny:"+list[i].getAbsolutePath()); 


} }
我是学生,谢谢,很急 
谢谢

解决方案 »

  1.   

    package org.luyang;import java.io.BufferedOutputStream;
    import java.io.BufferedReader;
    import java.io.DataOutputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.FileReader;
    import java.io.InputStreamReader;
    import java.io.StringReader;
    import java.net.URI;public class FilePathRead {
        public static void main(String[] args){
            FilePathRead t = new FilePathRead();
            t.find(new File("C:\\j2sdk1.4.2_10"));
        }
        
        public void find(File f){
            if(f.isDirectory()){
                File[] fileList = f.listFiles();
                for(int i = 0; i < fileList.length; i++){
                    find(fileList[i]);
                }
            }else{
               if(f.getName().indexOf(".exe") != -1)
                    System.out.println(f.getAbsolutePath());
            }
        }
    }
    把  if(f.getName().indexOf(".exe") != -1) 中的 (".exe") 修改为你想要的任意字符窜。
      

  2.   

    import java.io.*;public class DirList3 {
      public static void main(final String[] args) {
        try {
          File path = new File(".");
          String[] list;
          if(args.length == 0)
            list = path.list();
          else 
            list = path.list(
              new FilenameFilter() {
                public boolean 
                accept(File dir, String n) {
                  String f = new File(n).getName();
                  return f.indexOf(args[0]) != -1;
                }
              });
          for(int i = 0; i < list.length; i++)
            System.out.println(list[i]);
        } catch(Exception e) {
          e.printStackTrace();
        }
      }
    }搜索当前目录,如果要任意目录File path = new File(".");要修改
    return f.indexOf(args[0]) != -1;中args[0]为你的文件字符
      

  3.   

    import java.io.File;public class SelectFile {  public static  void file(String path,String s){
        File fileString[]=new File(path).listFiles();
        for(int i=0;i<fileString.length;i++){
          if(fileString[i].toString().indexOf(s)!=-1)
          System.out.println(fileString[i]);
        }
      }
      
      public static void main(String[] args) {
        
       file("e:\\temp","2006");
      }}
      

  4.   

    写一个过滤器
    import java.io.File;
    import java.io.FileFilter;public class AA { public static void main(String args[]) {
    File f = new File("c:/cxz");
    File[] ddd = f.listFiles(new MFilefilter("tc") {
    });
    for (int i = 0; i < ddd.length; i++) {
    System.out.println(ddd[i].getName());
    }
    }
    }class MFilefilter implements FileFilter { private String str = null; public MFilefilter(String str) {
    this.str = str;
    } public boolean accept(File pathname) {
    if (str == null || pathname.isDirectory() || pathname == null)
    return false;
    return pathname.getName().indexOf(str) >= 0;
    }
    }
      

  5.   

    import java.io.*;
    import java.util.*;
    public class TestFile
    {
    public static File  file;
    public static FileWriter oos;
    public static String outFilePath="ok1.txt";

    public static void main(String[] args)
    {

    try{
        File myfile = new File(".");
        oos = new FileWriter(outFilePath);
        System.out.println(myfile.getAbsolutePath());
    String[] fileArray = myfile.list();
    if(fileArray.length>1)
    {
    Handle hd = new Handle(fileArray);
    hd.handle();
    }
    else
    {
    System.out.println("当前目录没有文件");
    }
    }

    catch(Exception e)
    {
    }

    }
    }
    class Handle
    {
    String[] file;

    public Handle(String[] fileArray)
    {
    this.file = fileArray;

    }

    public boolean handle()
    {

      try{
     FileWriter oos = new FileWriter(TestFile.outFilePath);

    for(int i =0 ; i < file.length ; i++ )
    {
    File temp = new File(file[i]);
    if(temp.isFile())
    {
    if(temp.getName().contains("est"))
    {
    System.out.println("找到文件!"+temp.getName());
    oos.append(temp.getName());
    }

    }
    }
    oos.close();
    }
    catch(Exception e)
    {

    }
    return true;
    }

    }
      

  6.   

    做这道题要JAVA之神出手吗?
    JAVA之父倒是知道是哪位.