如果您查看下面的图片,我有一个包含3个文件夹的Google Feed,每个文件夹包含相同的文件Test_1.csv
和Test_2.csv
。这两个文件将作为我的数据流管道中的输入。
方案:有许多用户首先将Test_1.csv
和Test_2.csv
文件放在他们想要的任何文件夹中(旧文件将被替换)然后执行该程序 。关注的是当user1将最新的Test_1.csv
和Test_2.csv
放在任何文件夹中时,程序应检查所有文件夹并仅获取最后修改的文件。同样,当user2放入最新文件并执行程序时,程序应检查所有文件夹并仅获取最后修改的文件。
我可以使用以下代码检查文件夹中的最后修改过的文件:
private File getLatestFilefromDir(String dirPath){
File dir = new File(dirPath);
File[] files = dir.listFiles();
if (files == null || files.length == 0) {
return null;
}
File lastModifiedFile = files[0];
for (int i = 1; i < files.length; i++) {
if (lastModifiedFile.lastModified() < files[i].lastModified()) {
lastModifiedFile = files[i];
}
}
return lastModifiedFile; }
如何遍历搜索最新修改文件的所有文件夹?
答案 0 :(得分:0)
我不是百分百肯定,但看起来您正在寻找Test_1.csv
和 Test_2.csv
?
传入根文件夹,并递归遍历文件夹以查找两个文件:
public static File Test1;
public static File Test2;
public static void main(String[] args) {
File file = new File("\\\\your\\file\\path");
searchFiles(file);
System.out.println(Test1);
System.out.println(Test2);
}
public static void searchFiles(File directory) {
if (directory.isDirectory()) {
File[] subDirectories = directory.listFiles();
for (File file : subDirectories) {
searchFiles(file);
}
} else {
if (Test1 == null) {
if (directory.getName().contains("Test_1")) {
Test1 = directory;
}
}
if (Test2 == null) {
if (directory.getName().contains("Test_2")) {
Test2 = directory;
}
}
if (directory.getName().contains("Test_1") && directory.lastModified() > Test1.lastModified()) {
Test1 = directory;
}
if (directory.getName().contains("Test_2") && directory.lastModified() > Test2.lastModified()) {
Test2 = directory;
}
}
}