社区
Java SE
帖子详情
如何得到一个目录下按last modify时间排序的文件名列表?
ghw
2002-01-13 06:29:42
如何得到一个目录下按last modify时间排序的文件名列表?
我在java中没有发现好的方法,要实现的话,代码挺长。
哪位兄弟有好的方法,请贴上来。
...全文
371
5
打赏
收藏
如何得到一个目录下按last modify时间排序的文件名列表?
如何得到一个目录下按last modify时间排序的文件名列表? 我在java中没有发现好的方法,要实现的话,代码挺长。 哪位兄弟有好的方法,请贴上来。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ghw
2002-01-14
打赏
举报
回复
谢谢二位,我忘了TreeMap有按key排序的功能了,这样一来就把手动排序的代码省掉了。
ghw
2002-01-14
打赏
举报
回复
如果没什么别的好办法,只有拿"lastModify+fileName"作为key了。
ghw
2002-01-14
打赏
举报
回复
对了,这种用lastModify作为key的方法有些问题,如果一个目录下有几个文件的lastModify完全相同的话怎么办?
masterz
2002-01-13
打赏
举报
回复
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;
}
}
z_yheart
2002-01-13
打赏
举报
回复
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());
}
Java SE
62,628
社区成员
307,258
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章