Est-ce que quelqu'un a un extrait de Java qui peut retourner le fichier le plus récent dans un répertoire (ou la connaissance d'une bibliothèque qui simplifie ce genre de chose)?Java - obtient le fichier le plus récent dans un répertoire?
Répondre
Quelque chose comme:
import java.io.File;
import java.util.Arrays;
import java.util.Comparator;
public class Newest {
public static void main(String[] args) {
File dir = new File("C:\\your\\dir");
File [] files = dir.listFiles();
Arrays.sort(files, new Comparator(){
public int compare(Object o1, Object o2) {
return compare((File)o1, (File)o2);
}
private int compare(File f1, File f2){
long result = f2.lastModified() - f1.lastModified();
if(result > 0){
return 1;
} else if(result < 0){
return -1;
} else {
return 0;
}
}
});
System.out.println(Arrays.asList(files));
}
}
Cela renvoie la dernière modification:
public static File lastFileModified(String dir) {
File fl = new File(dir);
File[] files = fl.listFiles(new FileFilter() {
public boolean accept(File file) {
return file.isFile();
}
});
long lastMod = Long.MIN_VALUE;
File choice = null;
for (File file : files) {
if (file.lastModified() > lastMod) {
choice = file;
lastMod = file.lastModified();
}
}
return choice;
}
N'oubliez pas de vérifier que listFiles() ne renvoie pas de valeur nulle. –
Cela fonctionne parfaitement bien pour moi:
import org.apache.commons.io.FileUtils;
import org.apache.commons.io.comparator.LastModifiedFileComparator;
import org.apache.commons.io.filefilter.WildcardFileFilter;
...
/* Get the newest file for a specific extension */
public File getTheNewestFile(String filePath, String ext) {
File theNewestFile = null;
File dir = new File(filePath);
FileFilter fileFilter = new WildcardFileFilter("*." + ext);
File[] files = dir.listFiles(fileFilter);
if (files.length > 0) {
/** The newest file comes first **/
Arrays.sort(files, LastModifiedFileComparator.LASTMODIFIED_REVERSE);
theNewestFile = files[0];
}
return theNewestFile;
}
En Java 8:
Path dir = Paths.get("./path/somewhere"); // specify your directory
Optional<Path> lastFilePath = Files.list(dir) // here we get the stream with full directory listing
.filter(f -> !Files.isDirectory(f)) // exclude subdirectories from listing
.max(Comparator.comparingLong(f -> f.toFile().lastModified())); // finally get the last file using simple comparator by lastModified field
if (lastFilePath.isPresent()) // your folder may be empty
{
// do your code here, lastFilePath contains all you need
}
Veuillez ne pas simplement vider votre code. Expliquez votre train de pensée afin que nous puissions mieux comprendre votre réponse. Merci. – Cthulhu
a ajouté plus de commentaires dans le code :) – Almaz
Que se passe-t-il si la différence entre les deux horodatages modifiés en dernier est supérieure à Integer.MAX_VALUE? –
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;
}
les gars, vous pouvez utiliser ce code pour obtenir le dernier fichier modifié. –
public File getLastDownloadedFile() {
File choice = null;
try {
File fl = new File("C:/Users/" + System.getProperty("user.name")
+ "/Downloads/");
File[] files = fl.listFiles(new FileFilter() {
public boolean accept(File file) {
return file.isFile();
}
});
Thread.sleep(60000);
long lastMod = Long.MIN_VALUE;
for (File file : files) {
if (file.lastModified() > lastMod) {
choice = file;
lastMod = file.lastModified();
}
}
} catch (Exception e) {
Reporter.log("Exception while getting the last download file :"
+ e.getMessage());
}
log.info("The last downloaded file is " + choice.getPath());
Reporter.log("The last downloaded file is " + choice.getPath(),true);
return choice;
}
- 1. Python FTP Fichier le plus récent
- 2. Nant - Obtenir le dossier le plus récent
- 3. Trouver le fichier le plus ancien (récursivement) dans un répertoire
- 4. Fichier batch pour rechercher une chaîne dans le fichier le plus récent
- 5. SQL Query Advice - Le plus récent article
- 6. Comment puis-je obtenir le fichier le plus récent à partir d'un serveur FTP?
- 7. KornShell script pour obtenir le fichier le plus récent pour un jour donné
- 8. enregistrement le plus récent dans une jointure gauche
- 9. Répertoire actuel dans le fichier de propriétés Java
- 10. Fichier/répertoire java api
- 11. Implémentation du commentaire le plus récent - SQL Server
- 12. Sélectionnez le plus récent enregistrement correspondant à session_id
- 13. Fichier liste C# dans le répertoire
- 14. Commander des publications Wordpress par le plus récent commentaire
- 15. tâche de copier le fichier de propriétés à l'emplacement correspondant dans le répertoire de construction java
- 16. Fichier batch pour l'ouverture du journal anti-malware de Malwarebytes le plus récent
- 17. Assurez-vous que le résultat de la requête SQL le plus récent est utilisé dans autosuggest
- 18. Le moyen le plus rapide d'écrire des données volumineuses dans un fichier texte Java
- 19. Quel est le moyen le plus efficace de lire un fichier journal dans Java?
- 20. php curl laisser le fichier dans le répertoire - Comment nettoyer
- 21. Rediriger si le fichier existe dans le sous-répertoire
- 22. Le moyen le plus rapide pour supprimer un arbre de répertoires dans un fichier batch
- 23. Dans une application MFC, quel est le moyen le plus simple de copier un fichier d'un répertoire à un autre?
- 24. Le chemin le plus long dans le code Java
- 25. (java) Écrire dans le fichier little endian
- 26. Comment enregistrer le fichier dans un répertoire local
- 27. Ouvrir le fichier dans un autre répertoire en C
- 28. CD vers répertoire, où le chemin est dans un fichier
- 29. Python, trouver un fichier dans le même répertoire
- 30. Rechercher un fichier dans le répertoire avec plusieurs répertoires
Il est un peu bancal pour forcer un ClassCastException dans le cas non-fichier, au lieu de, disons, affirmant instanceof. –
Vous ne recevrez pas de non-fichier de la matrice retournée par File.listFiles(); – OscarRyz
Droite. Alors affirmez cela. –