用java实现获取指定文件夹下指定时间后的文件可以写出代码吗
时间: 2023-03-29 11:02:33 浏览: 87
可以的,以下是示例代码:
```
import java.io.File;
import java.util.Date;
public class GetFilesAfterTime {
public static void main(String[] args) {
String folderPath = "C:\\test"; // 指定文件夹路径
long timeInMillis = new Date().getTime() - 24 * 60 * 60 * 100; // 指定时间,这里是获取一天前的文件
File folder = new File(folderPath);
File[] files = folder.listFiles();
for (File file : files) {
if (file.lastModified() > timeInMillis) {
System.out.println(file.getName());
}
}
}
}
```
这段代码可以获取指定文件夹下一天内修改过的文件名。
相关问题
JAVA获取文件夹名称以树状形式在网页中显示并写出网页
好的,根据你的要求,我来为你提供一个JAVA程序,可以获取指定路径下的所有文件夹名称,并以树状结构的形式在网页中展示。代码如下:
```java
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
public class FolderTree {
private static List<String> folderList = new ArrayList<String>();
public static void main(String[] args) {
String path = "your_folder_path";
getFolderList(path, 0);
String html = getHtml();
System.out.println(html);
}
private static void getFolderList(String path, int level) {
File folder = new File(path);
if (!folder.exists()) {
return;
}
File[] files = folder.listFiles();
for (File file : files) {
if (file.isDirectory()) {
String folderName = file.getName();
folderList.add(getIndent(level) + folderName);
getFolderList(file.getAbsolutePath(), level + 1);
}
}
}
private static String getIndent(int level) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < level; i++) {
sb.append(" ");
}
return sb.toString();
}
private static String getHtml() {
StringBuilder sb = new StringBuilder();
sb.append("<html><head><title>Folder Tree</title></head><body>");
for (String folder : folderList) {
sb.append(folder);
sb.append("<br/>");
}
sb.append("</body></html>");
return sb.toString();
}
}
```
你需要将代码中的 `your_folder_path` 替换为你想要获取文件夹名称的路径。运行程序后,会在控制台输出生成的 HTML 代码。你可以将其复制粘贴到一个 HTML 文件中,然后在浏览器中打开,就能看到以树状结构的形式展示出来的文件夹名称了。
java Easyexcel 获取该路径下所有 Excel 文件(含子文件夹下),并把 Excel 文件最后修改时间为:一 周之内的 Excel 内容,合并到 mzy-merge.xlsx 文件中。 ② mzy-merge.xlsx 文件中,每个被合并文件内容最前部插入:该文件绝对路
径,并在每个文件内容之间插入一个空行。
以下是 Java 代码实现:
```java
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.metadata.WriteTable;
import com.alibaba.excel.write.metadata.fill.FillConfig;
import com.alibaba.excel.write.metadata.fill.FillWrapper;
public class ExcelMerge {
// 定义要遍历的文件夹路径
private static final String FOLDER_PATH = "C:/excel/";
// 定义要合并到的文件名
private static final String MERGE_FILE_NAME = "mzy-merge.xlsx";
// 定义每个被合并文件内容最前部插入的内容
private static final String FILE_PATH_PREFIX = "文件路径:";
public static void main(String[] args) {
// 获取一周前的日期
Calendar calendar = Calendar.getInstance();
calendar.setTime(new Date());
calendar.add(Calendar.DATE, -7);
Date oneWeekAgo = calendar.getTime();
// 获取所有 Excel 文件
List<File> excelFiles = getAllExcelFiles(new File(FOLDER_PATH));
// 遍历 Excel 文件,将一周内修改的文件内容合并到 mzy-merge.xlsx 文件中
ExcelWriter excelWriter = null;
try {
excelWriter = EasyExcel.write(MERGE_FILE_NAME).build();
WriteSheet writeSheet = EasyExcel.writerSheet().build();
for (File excelFile : excelFiles) {
if (excelFile.lastModified() < oneWeekAgo.getTime()) {
continue;
}
System.out.println("正在合并文件:" + excelFile.getAbsolutePath());
List<List<String>> data = EasyExcel.read(new FileInputStream(excelFile)).sheet().doReadSync();
for (int i = 0; i < data.size(); i++) {
data.get(i).add(0, FILE_PATH_PREFIX + excelFile.getAbsolutePath());
}
if (!data.isEmpty()) {
data.add(0, new ArrayList<>());
}
WriteTable writeTable = EasyExcel.writerTable().needHead(false).build();
FillConfig fillConfig = FillConfig.builder().forceNewRow(true).build();
FillWrapper fillWrapper = FillWrapper.builder().excelFile(excelFile.getAbsolutePath()).sheetNo(0).build();
excelWriter.fill(data, fillConfig, writeSheet, writeTable, fillWrapper);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
if (excelWriter != null) {
excelWriter.finish();
}
}
}
/**
* 获取指定文件夹下所有 Excel 文件(含子文件夹)
*
* @param folder 文件夹
* @return Excel 文件列表
*/
private static List<File> getAllExcelFiles(File folder) {
List<File> excelFiles = new ArrayList<>();
if (folder.isDirectory()) {
File[] files = folder.listFiles();
if (files != null) {
for (File file : files) {
if (file.isDirectory()) {
excelFiles.addAll(getAllExcelFiles(file));
} else if (file.isFile() && file.getName().endsWith(".xlsx")) {
excelFiles.add(file);
}
}
}
}
return excelFiles;
}
}
```
这段代码使用了 EasyExcel 库来读写 Excel 文件,具体实现步骤如下:
1. 获取一周前的日期;
2. 遍历指定文件夹下所有 Excel 文件,并筛选出最后修改时间在一周内的文件;
3. 读取每个符合条件的 Excel 文件内容,并在最前部插入文件路径信息和一个空行;
4. 将每个 Excel 文件内容填充到 mzy-merge.xlsx 文件中的对应位置。
阅读全文