public  void delFile(String path,String flag)
  {
    int count = 0;
    File dirRec = new File(path);
    String dir_list[] = dirRec.list();    for (int i=0;i<dir_list.length;i++)
    {
      File tmpname = new File(dir_list[i]);
      if(tmpname.isDirectory())
      {
        System.out.println(tmpname);
        delFile(dir_list[i],flag);
      }else{
        if(dir_list[i].indexOf(flag)>=0){
           System.out.println(tmpname);
          boolean re = tmpname.delete();
          count++;
          System.out.println("result:"+re+"--number:"+count);
        }
      }
    }上面是一个删除path目录下有flag标志文件的方法,里面有访问目录下文件以及其子文件夹方法,你可以改写一下就是那!

解决方案 »

  1.   

    /*
     * Created on 2004-6-28
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package e20040628;
    import java.io.*;
    import java.util.*;/**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class DirList { public static void main(String[] args) {
    DirList dlist= new DirList();
    if (args.length!=0)
         dlist.showAllfile("E:\\eclipse-SDK-3.0-win32\\eclipse",args[0]);
    else
    dlist.showAllfile(".","");
    }
    public void showAllfile(String directoryname,String filter){
    File path = new File(directoryname);
    String[] list;
    if(filter.length()==0)
    list = path.list();
    else
    list = path.list(new DirFilter(filter));

    Arrays.sort(list,new AlphabeticComparator());

    for(int i=0 ;i<list.length;i++)
    {
    File enumfilename = new File(list[i]);
    if (enumfilename.isDirectory())
    {
    System.out.println("Directory: "+list[i]);
    showAllfile(list[i],filter);
    }
    else
    System.out.println(list[i]);
    }
    }
    }class DirFilter implements FilenameFilter{
    String afn;
    DirFilter(String afn){
    this.afn=afn;
    }
    public boolean accept(File dir,String name){
    String f = new File(name).getName();
    if (afn.length()==0)
    return true;
    else
    return f.indexOf(afn)!=-1;
    }
    }class AlphabeticComparator implements Comparator{
    public int compare(Object o1,Object o2){
    String s1=(String)o1;
    String s2=(String)o2;
    return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
    }
      

  2.   

    修改后的,可以列出自定文件夹下所有的文件夹和文件名,包括子文件夹下面的
    /*
     * Created on 2004-6-28
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package e20040628;
    import java.io.*;
    import java.util.*;/**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class DirList { public static void main(String[] args) {
    DirList dlist= new DirList();
    if (args.length!=0)
         dlist.showAllfile(".",args[0]);
    else
    dlist.showAllfile(".","");
    }
    public void showAllfile(String directoryname,String filter){


    File path = new File(directoryname);
    String[] list;
    if(filter.length()==0)
    list = path.list(); 
    else
    list = path.list(new DirFilter(filter));

    if (list==null )
    return;

    Arrays.sort(list,new AlphabeticComparator());

    for(int i=0 ;i<list.length;i++)
    {
    File enumfilename = new File(converttoPath(path.getPath()+"\\"+list[i]));
    if (enumfilename.isDirectory())
    {
    System.out.println("Directory: "+list[i]);
    showAllfile(converttoPath(path.getPath()+"\\"+list[i]),filter);
    }
    else
    System.out.println(list[i]);
    }
    }
    public String converttoPath(String pathName){
    StringBuffer bufferdir= new StringBuffer(pathName);
    for(int i=0;i<bufferdir.length();i++)
    if (bufferdir.charAt(i)=='\\')
    {
    bufferdir.insert(++i,'\\');
    }
    return new String(bufferdir);
    }
    }class DirFilter implements FilenameFilter{
    String afn;
    DirFilter(String afn){
    this.afn=afn;
    }
    public boolean accept(File dir,String name){
    String f = new File(name).getName();
    if (afn.length()==0)
    return true;
    else
    return f.indexOf(afn)!=-1;
    }
    }class AlphabeticComparator implements Comparator{
    public int compare(Object o1,Object o2){
    String s1=(String)o1;
    String s2=(String)o2;
    return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
    }
      

  3.   

    再次修改后的,可以显示你设置的类型的文件(过滤掉你不想看见的)
    若子文件夹里有该类型的文件,同样可以显示出来
    /*
     * Created on 2004-6-28
     *
     * TODO To change the template for this generated file go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    package e20040628;
    import java.io.*;
    import java.util.*;/**
     * @author Administrator
     *
     * TODO To change the template for this generated type comment go to
     * Window - Preferences - Java - Code Style - Code Templates
     */
    public class DirList { public static void main(String[] args) {
    DirList dlist= new DirList();
    if (args.length!=0)
         dlist.showAllfile(".",args[0]);
    else
    dlist.showAllfile(".",".class");
    }
    public void showAllfile(String directoryname,String filter){
    File path = new File(directoryname);
    String[] list;
    if(filter.length()==0)
    list = path.list(); 
    else
    list = path.list(new DirFilter(filter));

    if (list==null )
    return;

    Arrays.sort(list,new AlphabeticComparator());

    for(int i=0 ;i<list.length;i++)
    {
    File enumfilename = new File(converttoPath(path.getPath()+"\\"+list[i]));
    if (enumfilename.isDirectory())
    {
    System.out.println("Directory: "+list[i]);
    showAllfile(converttoPath(path.getPath()+"\\"+list[i]),filter);
    }
    else
    System.out.println(list[i]);
    }
    }
    public String converttoPath(String pathName){
    StringBuffer bufferdir= new StringBuffer(pathName);
    for(int i=0;i<bufferdir.length();i++)
    if (bufferdir.charAt(i)=='\\')
    {
    bufferdir.insert(++i,'\\');
    }
    return new String(bufferdir);
    }
    }class DirFilter implements FilenameFilter{
    String afn;
    DirFilter(String afn){
    this.afn=afn;
    }
    public boolean accept(File dir,String name){
    File listfile= new File(name);
    String f =listfile.getName();
    if (afn.length()==0||listfile.isDirectory())
    return true;
    else
    return f.indexOf(afn)!=-1;
    }
    }class AlphabeticComparator implements Comparator{
    public int compare(Object o1,Object o2){
    String s1=(String)o1;
    String s2=(String)o2;
    return s1.toLowerCase().compareTo(s2.toLowerCase());
    }
    }