文件在这里是随机输出得到的。要想你的文件有序输出你必须自己设定输出的结构!
String dirfile[] = f.list();
在得出这个dirfile后进行你需要的排列处理然后for( int i=0; i<dirfile.length; i++ )
{
 String a;
 a=dirfile[i].toString();
 System.out.println();
}

解决方案 »

  1.   

    看看这篇文章也许有帮助:
    http://www.yesky.com/SoftChannel/72342371961929728/20030813/1721118.shtml
      

  2.   

    最简单的,用冒泡排序法了:import java.io.File;
    public class TTest {
        public static void main(String[] args) throws Exception {
                String dir = "c:\\abc\\";
                File f = new File(dir);
                if (f.isDirectory()) {
                    String dirfile[] = f.list();
                      for(int j=dirfile.length-1;j>0;j--){
                          if(dirfile[j].length()<dirfile[j-1].length()){
                              String tempStr=dirfile[j];
                              dirfile[j]=dirfile[j-1];
                              dirfile[j-1]=tempStr;
                          }
                    }
                    for (int i = 0; i < dirfile.length; i++) {
                        String a;
                        a = dirfile[i].toString();
                        System.out.println(a);
                    }
                }        }
    }
      

  3.   

    加msn:[email protected],或许我的一些想法对你有启发
      

  4.   

    单位没有MSN,急死我了 !
      

  5.   

    冒泡法可以解决,但nc201(Bricklayer) 的for循环不对,应该是这样:
    for(int i = 0; i<dirfile.length-1 ; i++){
                       for(int j = i+1; j<dirfile.length; j++){
                       if(dirfile[i].length()>dirfile[j].length()) {
                       String tempStr=dirfile[i];
                            dirfile[i]=dirfile[j];
                            dirfile[j]=tempStr;
                       }
                       }
                      }
    还有输出的时候也有问题:
    a = dirfile[i].toString();中的dirfile[i]已经被屏蔽掉了,应该在域里先声明如果还有一些小的出入你就自己解决吧!这个方法应该没问题
      

  6.   

    ok,搞定了,就是粗了点,你把那个目录改成你的就行了,我已经运行测试过了
    import java.io.*;
    import java.util.*;
    public class Test1 {  public Test1() {
      }
      public static void main(String[] args){
        File file = new File("F:\\myProjects\\");
        String[] files = file.list();
        Vector directories = new Vector();
        //int counter=0;
        File directory;
        for (int i = 0; i < files.length; i++) {
          if((directory = new File("f:\\myprojects\\"+files[i])).isDirectory()){
            //counter++;
            directories.addElement(files[i]);
          }
        }
        String[] str = new String[directories.size()];
        for (int i = 0; i < str.length; i++) {
          str[i] = (String)directories.elementAt(i);
        }
        orderStringList(str);
        for (int i = 0; i < str.length; i++) {
          System.out.println(str[i]);
        }    //System.err.println(counter);
      }
      private static void orderStringList(String[] list){
        int length = list.length;
        String temp;
        for (int i = 0; i <length-1; i++) {
          for(int j = i+1;j <length;j++){
            if(list[i].length()>list[j].length()){
              temp=list[i];
              list[i]=list[j];
              list[j]=temp;
            }
          }
        }  }
    }
      

  7.   

    哦,我想起来了,你的意思是遍历abc目录下一级目录下的文件夹,还是指下面所有的文件夹,包括第2级,第3级???如果是所有的,那这个程序就还得改下
      

  8.   

    我要在JSP里实现,这是我的源文件,帮忙看看String dir ="C:\\Apache Tomcat 4.0\\webapps\\ROOT\\cisys2\\tree\\SXH\\会商意见\\周会商";
    //String dir ="D:\\Tomcat 5.1\\webapps\\ROOT\\cisys2\\tree\\test\\huishangyijian\\zhouhuishang";File f=new File(dir);
    if(f.isDirectory() )
    {
    String dirfile[] = f.list();for( int i=0; i<dirfile.length; i++ )
    {

     String a;
     a=dirfile[i].toString();
    System.out.println(a);
    %>
      

  9.   

    晕,jsp不就是用的java代码吗,你用我刚才那个程序的主要部分代进去呀,看懂了不就可以自己加进去了
      

  10.   

    public void sort(String directory)
    {
      File file=new File(directory);
      if (!file.isDirectory()) return;
      System.out.println(directory);
      String[] files=file.list();
      Arrays.sort(files);
      String _file=null;
      for (int i=0; i<files.length; i++)
      {
        _file=directory+"\\"+files[i];  
        sort(_file);
      }
    }
      

  11.   

    public ArrayList getDirectory(String directory)
      {
        File file=new File(directory);
        if (!file.isDirectory()) return null;
        ArrayList files=new ArrayList();
        files.add(directory);
        String[] _files=file.list();
        String tmp=null;
        for (int i=0; i<_files.length; i++)
        {
          tmp=directory+"\\"+_files[i];
          if (getDirectory(tmp)!=null) files.addAll(getDirectory(tmp));
        }
        return files;
      }
    public void sort(String directory)
      {
        ArrayList arr=getDirectory(directory);
        Object[] files=arr.toArray();
        Arrays.sort(files,new Comparator(){public int compare(Object obj1,Object obj2) { return ((String)obj1).length()-((String)obj2).length();}});
        for (int i=0; i<files.length; i++)
          System.out.println(files[i]);
      }