社区
Java SE
帖子详情
如何得到一个目录下按last modify时间排序的文件名列表?
ghw
2002-01-13 06:29:42
如何得到一个目录下按last modify时间排序的文件名列表?
我在java中没有发现好的方法,要实现的话,代码挺长。
哪位兄弟有好的方法,请贴上来。
...全文
353
5
打赏
收藏
如何得到一个目录下按last modify时间排序的文件名列表?
如何得到一个目录下按last modify时间排序的文件名列表? 我在java中没有发现好的方法,要实现的话,代码挺长。 哪位兄弟有好的方法,请贴上来。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用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());
}
常用sql总结
sql总结
Oracle 11g详细操作
Oracle实操,自己做的笔记,全部截图附加解释
Linux系统下查找最近修改过的文件
Linux的终端上,没有windows的搜索那样好用的图形界面工具,但find命令确是很强大的。 比如按名字查找
一个
文件,可以用 find / -name targetfilename 。 唉,如果只知道名字,不知道地点,这样也不失为
一个
野蛮有效的方法。 按
时间
查找也有参数 -atime 访问
时间
-ctime 改变状态的
时间
-mtime修改的
时间
。但要注意,这里的
时间
是以24小时为单位的。 查看man手册后使用,你会很迷惑: -mtime n: Files data was last modifi
【转载】Linux系统下查找最近修改过的文件
Linux的终端上,没有windows的搜索那样好用的图形界面工具,但find命令确是很强大的。 比如按名字查找
一个
文件,可以用 find / -name targetfilename 。 唉,如果只知道名字,不知道地点,这样也不失为
一个
野蛮有效的方法。 按
时间
查找也有参数 -atime 访问
时间
-ctime 改变状态的
时间
-mtime修改的
时间
。但要注意,这里的
时间
是以24小时为单位的。 查看man手册后使用,你会很迷惑: -mtime n: Files data was last modifi
Linux指令(详细版)
ls -a:列出
目录
中的所有文件,包括以点(.)开头的隐藏文件。ls -l:以长格式列出文件信息,包括文件权限、所有者、大小和最后修改
时间
。ls -h:与-l选项一起使用,以更易读的格式显示文件大小(例如 KB、MB)。ls -t:按照最后修改
时间
排序
文件和
目录
。ls -S:按文件大小
排序
。ls -r:逆序排列文件(与-t或-S结合使用时非常有用)。ls -R:递归地列出所有子
目录
的内容。
Java SE
62,630
社区成员
307,264
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章