我想从一个文件夹下取出最新的一个文件,然后把它的文件名显示出来.想了一个办法,可能是比较笨的方法,希望能抛砖引玉.
解决方案是:
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
分享到:
相关推荐
### IT知识点:Java读取文件夹下所有文件(包括子文件夹) 在Java编程中,读取文件夹下的所有文件,尤其是包含子文件夹中的文件,是一项常见的需求,尤其是在进行文件管理、数据处理或构建文件系统相关的应用时。...
在Java编程中,获取文件或文件夹的大小以及文件个数是常见的操作,尤其是在处理文件上传、存储管理和性能监控等场景。以下将详细介绍如何通过Java实现这些功能。 首先,我们来探讨如何获取单个文件的大小。在Java中...
本项目的核心是通过Java编程语言来实现对目录下所有文件和子目录的遍历,同时计算每个文件的MD5值。这涉及到Java的IO流和递归算法。递归是一种解决问题的方法,它定义问题的解为一个或多个规模更小的同类问题的解。...
总之,查找文件夹下所有文件的方法多种多样,取决于你的具体需求和所使用的操作系统或工具。理解这些基本操作将大大提高你在日常工作中处理文件的效率。无论是简单的搜索,还是复杂的文件处理,都有相应的解决方案...
以下是一个详细的Java实现,用于读取文件夹下(包括子目录)所有文件的文件名: 首先,我们创建一个名为`FileList`的类,它包含以下几个成员变量: 1. `dir_name`: 用来存储文件夹的路径。 2. `list_name`: 用来...
- 在获取到共享目录的访问权限后,我们可以使用Java的I/O流来读取和下载文件。这通常涉及`FileInputStream`(用于读取远程文件)和`FileOutputStream`(用于写入本地文件)。`SmbUtils.java`中的某个方法可能负责从...
总的来说,"spring boot文件夹文件监听程序"是一个结合了Java文件系统监听和Spring Boot自动化功能的实用工具,它可以实时监控指定目录,及时响应文件变化,对于文件管理、数据同步等场景具有很高的价值。...
总的来说,“取文件夹下的文件名”是一项基础但重要的IT技能,它涉及到操作系统、文件系统、编程语言特性和问题解决等多个方面的知识。熟练掌握这些技巧,对于日常的开发工作和自动化脚本编写都大有裨益。
在Java编程环境中,处理共享文件是一项常见的任务,特别是在企业级应用中,可能需要访问网络上的文件系统资源。Java提供了一些库来实现这一功能,其中之一就是jcifs库,它是一个开源的Java SMB(Server Message ...
本篇将详细介绍如何使用Java和JSch在Windows上实现对Linux服务器的文件获取。 首先,我们需要理解SSH(Secure Shell)协议。SSH是一种网络协议,用于安全地远程登录到服务器,执行命令和传输数据。JSch库实现了SSH2...
Java多线程文件分片下载实现的示例代码 本文将详细介绍Java多线程文件分片下载的实现示例代码,通过示例代码,大家可以学习和理解多线程文件分片下载的技术难点和解决方案。 多线程下载的技术难点 ---------------...
在Windows中,我们可以使用命令行工具“dir”(directory)配合“/s”参数来递归列出指定路径下的所有文件和子文件夹。例如:“dir /s C:\path\to\directory”。结果将以平面列表的形式展示。如果希望以树形结构...
在Java编程中,有时我们...总的来说,Java中删除指定目录下所有空文件夹的过程涉及文件系统API的使用,包括文件和目录的遍历以及删除操作。通过递归遍历目录并检查每个子目录是否为空,我们可以有效地实现这一功能。
3. Prefetch:预读取文件夹,用来存放系统已访问过的文件的预读信息。这些文件可以删除,但需要注意的是,删除这些文件可能会影响系统的性能。 4. i386:Windows操作系统自带的已知硬件驱动文件,可以删除以节省空间...
Java zip压缩包查看程序,应用弹出文件选择框,选择ZIP格式的压缩文件,可以像Winrar软件一样查看压缩文件内部的文件及文件夹,源码截图如上所示。 Java 数字签名、数字证书生成源码 2个目标文件 摘要:JAVA源码,...
* 如果为false,将直接压缩目录下文件到压缩文件. * @param passwd 压缩使用的密码 * @return 最终的压缩文件存放的绝对路径,如果为null则说明压缩失败. */ 方法详细见文件! 可选择文件list压缩 /** * 使用...
我们首先需要将 Java 项目打包成可执行 JAR 文件,然后使用 exe4j 将其转换为 EXE 文件。在转换过程中,我们需要设置程序运行的 Class Path 和 Main Class,并捆绑 JRE 到 EXE 文件中,以确保程序的兼容性和可移植性...
综上所述,批量修改文件和文件夹名是IT工作中一个常用且实用的技能,涉及到了批处理、脚本编写、第三方工具的使用以及对文件系统的深入理解。正确运用这些知识,可以极大地提高我们的工作效率。
在这个项目中,我们主要探讨了利用iTextPDF和PDFBox两个库在Java环境下如何进行PDF电子签名的实现。 iTextPDF是一个流行的Java库,专门用于创建、修改和处理PDF文档。它的电子签名功能强大,支持创建、验证和添加...