`
jssay
  • 浏览: 27635 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

用Java取文件夹下最新文件

    博客分类:
  • Java
阅读更多
我想从一个文件夹下取出最新的一个文件,然后把它的文件名显示出来.想了一个办法,可能是比较笨的方法,希望能抛砖引玉.

解决方案是:

1, 遍历文件夹下的所有文件,将文件名和文件的最后修改时间push到一个Map中,用Last Modified time作为key,file name作为value.
<code>

List dateList = new ArrayList();

public Map readfile(String filepath){
    Map map = null;
    try {
        map = new TreeMap();
        File file = new File(filepath);
        if (!file.isDirectory()) {
                System.out.println(filepath+" is not a folder!");
        }else if (file.isDirectory()) {

                String[] filelist = file.list();
                for (int i = 0; i < filelist.length; i++) {
                  File readfile = new File(filepath + "/" + filelist[i]);
                  if (!readfile.isDirectory()) {
                        String fileName = readfile.getName();
                        long time = readfile.lastModified();
                        dateList.add(new Long(time));
                        map.put(String.valueOf(time), fileName);
                        }
                }
        }

    }catch (Exception e) {
      System.out.println("readfile()   Exception:" + e.getMessage());
    }
    return map;
  }

</code>

2. 将这个Map的Key按时间排序.


<code>
Collections.sort(dateList,new Comparator(){
                public int compare(Object o1,Object o2) {
                Long p1 = (Long)o1;
                Long p2 = (Long)o2;
                if(p1.longValue()<p2.longValue())
                        return 1;
                else
                        return 0;
        }});
</code>

3.根据排好序的key取出文件名,那么第一个就是我们所要的最新的文件了.

<code>
String date = null;
String fileName = null;

if(map!=null && map.size()!=0){
                for(int i=0; i<dateList.size(); i++){
                        date = String.valueOf(dateList.get(i));
                        fileName = (String)map.get(date);
                       break;
                }       
        }
System.out.println("The newest file is: " + fileName);
</code>

Refer to www.jssay.com
0
0
分享到:
评论
5 楼 mjm13 2009-12-07  
谢谢。
楼上的都瞎说 - -#
FileFilter jdk解释:用于抽象路径名的过滤器。

怎么取最新的?。
4 楼 zbwil 2009-11-10  
giginet 写道
使用自定义的一个filter,效果更高,代码最简洁。这个效率应该是最低的。

这位大哥,说说具体怎么写啊???
3 楼 jssay 2009-10-23  
giginet 写道
自己扩展个FileFilter就可以了。

我还真没用过这个FileFilter,不过还是要谢谢你的提醒。
2 楼 giginet 2009-10-23  
自己扩展个FileFilter就可以了。
1 楼 giginet 2009-10-23  
使用自定义的一个filter,效果更高,代码最简洁。这个效率应该是最低的。

相关推荐

    读取文件夹下所有文件

    ### IT知识点:Java读取文件夹下所有文件(包括子文件夹) 在Java编程中,读取文件夹下的所有文件,尤其是包含子文件夹中的文件,是一项常见的需求,尤其是在进行文件管理、数据处理或构建文件系统相关的应用时。...

    Java获取文件夹大小、文件大小,文件个数

    在Java编程中,获取文件或文件夹的大小以及文件个数是常见的操作,尤其是在处理文件上传、存储管理和性能监控等场景。以下将详细介绍如何通过Java实现这些功能。 首先,我们来探讨如何获取单个文件的大小。在Java中...

    获取目录下所有文件和文件夹,并计算其MD5值,两个文件夹比较,得出被篡改的目录路径

    本项目的核心是通过Java编程语言来实现对目录下所有文件和子目录的遍历,同时计算每个文件的MD5值。这涉及到Java的IO流和递归算法。递归是一种解决问题的方法,它定义问题的解为一个或多个规模更小的同类问题的解。...

    查找文件夹下所有的文件,我辛苦了好久才写出来的

    总之,查找文件夹下所有文件的方法多种多样,取决于你的具体需求和所使用的操作系统或工具。理解这些基本操作将大大提高你在日常工作中处理文件的效率。无论是简单的搜索,还是复杂的文件处理,都有相应的解决方案...

    Java实现读取文件夹下(包括子目录)所有文件的文件名

    以下是一个详细的Java实现,用于读取文件夹下(包括子目录)所有文件的文件名: 首先,我们创建一个名为`FileList`的类,它包含以下几个成员变量: 1. `dir_name`: 用来存储文件夹的路径。 2. `list_name`: 用来...

    超详细!java访问windows共享目录并下载文件

    - 在获取到共享目录的访问权限后,我们可以使用Java的I/O流来读取和下载文件。这通常涉及`FileInputStream`(用于读取远程文件)和`FileOutputStream`(用于写入本地文件)。`SmbUtils.java`中的某个方法可能负责从...

    spring boot文件夹文件监听程序

    总的来说,"spring boot文件夹文件监听程序"是一个结合了Java文件系统监听和Spring Boot自动化功能的实用工具,它可以实时监控指定目录,及时响应文件变化,对于文件管理、数据同步等场景具有很高的价值。...

    取文件夹下文件名.rar

    总的来说,“取文件夹下的文件名”是一项基础但重要的IT技能,它涉及到操作系统、文件系统、编程语言特性和问题解决等多个方面的知识。熟练掌握这些技巧,对于日常的开发工作和自动化脚本编写都大有裨益。

    java操作共享文件

    在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...

    java代码在window获取linux文件

    本篇将详细介绍如何使用Java和JSch在Windows上实现对Linux服务器的文件获取。 首先,我们需要理解SSH(Secure Shell)协议。SSH是一种网络协议,用于安全地远程登录到服务器,执行命令和传输数据。JSch库实现了SSH2...

    Java多线程文件分片下载实现的示例代码

    Java多线程文件分片下载实现的示例代码 本文将详细介绍Java多线程文件分片下载的实现示例代码,通过示例代码,大家可以学习和理解多线程文件分片下载的技术难点和解决方案。 多线程下载的技术难点 ---------------...

    列出所有文件及文件夹

    在Windows中,我们可以使用命令行工具“dir”(directory)配合“/s”参数来递归列出指定路径下的所有文件和子文件夹。例如:“dir /s C:\path\to\directory”。结果将以平面列表的形式展示。如果希望以树形结构...

    java删除指定目录下所有空文件夹的方法

    在Java编程中,有时我们...总的来说,Java中删除指定目录下所有空文件夹的过程涉及文件系统API的使用,包括文件和目录的遍历以及删除操作。通过递归遍历目录并检查每个子目录是否为空,我们可以有效地实现这一功能。

    详解WINDOWS文件夹里哪些文件与文件夹可以删除掉[参考].pdf

    3. Prefetch:预读取文件夹,用来存放系统已访问过的文件的预读信息。这些文件可以删除,但需要注意的是,删除这些文件可能会影响系统的性能。 4. i386:Windows操作系统自带的已知硬件驱动文件,可以删除以节省空间...

    java源码包---java 源码 大量 实例

     Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...

    java压缩文件生成带密码的zip包,解压带密码的zip包的工具类

    * 如果为false,将直接压缩目录下文件到压缩文件. * @param passwd 压缩使用的密码 * @return 最终的压缩文件存放的绝对路径,如果为null则说明压缩失败. */ 方法详细见文件! 可选择文件list压缩 /** * 使用...

    java代码,打包成jar文件以及转换为exe可执行文件

    我们首先需要将 Java 项目打包成可执行 JAR 文件,然后使用 exe4j 将其转换为 EXE 文件。在转换过程中,我们需要设置程序运行的 Class Path 和 Main Class,并捆绑 JRE 到 EXE 文件中,以确保程序的兼容性和可移植性...

    批量修改文件文件夹名

    综上所述,批量修改文件和文件夹名是IT工作中一个常用且实用的技能,涉及到了批处理、脚本编写、第三方工具的使用以及对文件系统的深入理解。正确运用这些知识,可以极大地提高我们的工作效率。

    java多种方式实现pdf文件电子签名

    在这个项目中,我们主要探讨了利用iTextPDF和PDFBox两个库在Java环境下如何进行PDF电子签名的实现。 iTextPDF是一个流行的Java库,专门用于创建、修改和处理PDF文档。它的电子签名功能强大,支持创建、验证和添加...

Global site tag (gtag.js) - Google Analytics