Fotomizer Asked:2020-02-14 20:33:17 +0000 UTC2020-02-14 20:33:17 +0000 UTC 2020-02-14 20:33:17 +0000 UTC 如何在Java中获取目录的修改日期 772 如何进入Java Folder.lastModified()?递归浏览目录并获取最后一个文件的日期的选项不合适,因为目录可能是空的。 java 2 个回答 Voted Alex Chermenin 2020-02-14T20:42:07Z2020-02-14T20:42:07Z 是的,它似乎与任何文件相同: new Date(new File("C:\\Windows").lastModified()) // Sat Feb 10 04:20:29 MSK 2018 Best Answer Fotomizer 2020-02-15T23:28:26Z2020-02-15T23:28:26Z 不一定是那样。事实是,如果父目录中有子目录,那么当对它们进行更改时,父目录的 lastmodified 不会改变。因此,没有递归是不可能的: private static long getLatestModifiedDate(File dir) { if (dir.isDirectory()) { File[] files = dir.listFiles(); long latestDate = 0; for (File file : files) { long fileModifiedDate = file.isDirectory() ? getLatestModifiedDate(file) : file.lastModified(); if (fileModifiedDate > latestDate) { latestDate = fileModifiedDate; } } return Math.max(latestDate, dir.lastModified()); } else { return dir.lastModified(); } }
是的,它似乎与任何文件相同:
不一定是那样。事实是,如果父目录中有子目录,那么当对它们进行更改时,父目录的 lastmodified 不会改变。因此,没有递归是不可能的: