import java.io.*;
import java.lang.*;
import java.util.*;...    TreeMap tm=new TreeMap();
    File f=new File("C:\\");
    File subFile[]=f.listFiles();
    int fileNum=subFile.length;
    for(int i=0;i<fileNum;i++)
      {
        Long tempLong=new Long(subFile[i].lastModified());
        tm.put(tempLong,subFile[i]);
      }
   Set set=tm.keySet();
   Iterator iter=set.iterator();
   while(iter.hasNext())
   {
    Object key=iter.next();
    Object objValue=tm.get(key);
    File tempFile=(File)objValue;
    System.out.println(tempFile.getPath()+"\t"+key.toString());
   }  

解决方案 »

  1.   

    import java.io.*;
    import java.util.*;
    public class Sortfile
    {
    public static void main(String args[])
    {
    String[] ret=getSortFile("c:\\temp\\echoc");
    if(ret!=null)
    {
    for(int i=0;i<ret.length;i++)
    {
    System.out.println(ret[i]);
    }
    }
    else
    System.out.println("null path:");
    }
    public static String[] getSortFile(String pathname)
    {
    try
    {
    File fpath=new File(pathname);
    if(fpath.isDirectory()==false)
    {
    //System.out.println(pathname+" is not a valid path name!");
    return null;
    }
    String[] filelist=fpath.list();
    int length=filelist.length;
    Vector filevec=new Vector();
    Map mapfile=new TreeMap();
    for(int i=0;i<length;i++)
    {
    String filei=filelist[i];
    String fname=pathname+filei;
    File ftmp=new File(pathname,filei);
    if(ftmp.isFile())
    {
    mapfile.put(new Long(ftmp.lastModified()),ftmp.getPath());
    //System.out.println("40:"+ftmp.getPath());
    }
    }
    Collection filecoll=mapfile.values();
    length=filecoll.size();
    if(length==0)
    return null;
    String[] ret=new String[length];
    Iterator ita=filecoll.iterator();
    int i=0;
    while(ita.hasNext())
    {
    Object obj=ita.next();
    //System.out.println("54:"+obj);
    ret[i++]=(String)obj;
    }
    return ret;
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    return null;
    }

    }
      

  2.   

    谢谢二位,我忘了TreeMap有按key排序的功能了,这样一来就把手动排序的代码省掉了。
      

  3.   

    对了,这种用lastModify作为key的方法有些问题,如果一个目录下有几个文件的lastModify完全相同的话怎么办?
      

  4.   

    如果没什么别的好办法,只有拿"lastModify+fileName"作为key了。