Comment trouver le dossier modifié le plus récemment (NOT A FILE) dans un répertoire utilisant Ruby?Comment trouver le dossier modifié le plus récemment dans un répertoire en utilisant Ruby?
4
A
Répondre
21
Dir.glob("a_directory/*/").max_by {|f| File.mtime(f)}
Dir.glob("a_directory/*/")
retourne tous les noms de répertoires dans a_directory
(sous forme de chaînes) et max_by
renvoie le nom du répertoire pour lequel File.mtime
retourne la plus grande date (à savoir la plus récente).
Edit: mise à jour de réponse pour correspondre à la question mise à jour
1
Trouvez le répertoire le plus récemment modifié dans le répertoire courant:
folders = Dir["*"].delete_if{|entry| entry.include? "."}
newest = folders[0]
folders.each{|folder| newest = folder if File.mtime(folder) > File.mtime(newest)}
1
expansion au large de la réponse de sepp2k un peu pour ajouter une vérification récursive tous les sous-répertoires pour les à venir à travers ceci:
#!/usr/bin/env ruby
if ARGV.count != 1 then raise RuntimeError, "Usage: newest.rb '/path/to/your dir'" end
Dir.chdir(ARGV[0])
newest_file = Dir.glob("**/").max_by {|f| File.mtime(f)}
if newest_file != nil then
puts newest_file.to_s + " " + File.mtime(newest_file).to_s
else
puts "No subdirectories"
end
et utilisez plutôt si vous voulez que tous les fichiers et répertoires non seulement:
Dir.glob("**/*")
Questions connexes
- 1. Bash Script pour trouver le fichier le plus récemment modifié
- 2. comment trouver le fichier le plus récemment archivé dans VSS
- 3. Comment trouver le fichier le plus récemment édité dans NSIS
- 4. Trouver le nouveau dossier dans un répertoire en Python
- 5. Comment trouver le dernier sous-dossier modifié?
- 6. Comment trouver le dernier fichier modifié dans un répertoire Java?
- 7. Est-ce que VBScript peut déterminer le fichier le plus récemment modifié (ou ajouté) dans un dossier particulier?
- 8. Comment supprimer un dossier en utilisant JavaScript modifié dans Pentaho?
- 9. Trouver le fichier le plus ancien dans un dossier en utilisant PHP
- 10. Trouver le fichier le plus ancien (récursivement) dans un répertoire
- 11. Quickest façon de trouver le fichier le plus ancien dans un répertoire en utilisant Delphi
- 12. Déplacer un dossier dans le répertoire Documents
- 13. ouvrir le dernier fichier modifié dans le répertoire en utilisant vi
- 14. Ant: trouver le dernier dossier dans un dossier
- 15. Le cache le plus récemment utilisé à l'aide de C++
- 16. Comment créer un dossier dans le répertoire installé de l'application
- 17. Django, filtrer l'élément le plus récemment ajouté
- 18. comment obtenir le nom du sous-dossier dans un dossier connu en utilisant le script batch?
- 19. Comment renommer un dossier/répertoire en C#?
- 20. Comment trouver le plus grand et le plus petit nombre dans un tableau en c
- 21. cmd: Trouver le dossier mis à jour et le supprimer en utilisant cmd
- 22. Comment puis-je savoir quand un fichier a été récemment remplacé dans un dossier FTP?
- 23. Je dois trouver un fichier dans le répertoire et le copier dans un répertoire différent
- 24. En utilisant% {REQUEST_URI} modifié dans le fichier RewriteCond existe vérifier
- 25. Nant - Obtenir le dossier le plus récent
- 26. Copier les fichiers dans le dossier d'un répertoire en python
- 27. Bundler crée un? dossier dans le répertoire racine du projet
- 28. moyen le plus rapide pour trouver le texte dans le dossier
- 29. Java - obtient le fichier le plus récent dans un répertoire?
- 30. Trouver le serveur le plus proche dans le réseau
Je suis à la recherche pour savoir comment trouver le dernier dossier modifié plutôt que le fichier, donc File.new jette et erreur, et il n'y a pas Dir.mtime – Dasmowenator
@ Sam: 'File.new' ne apparaît n'importe où dans mon code et 'File.mtime' fonctionne très bien avec un nom de répertoire en tant qu'argument. N'essayez pas de "réparer" mon code, cela fonctionne tel quel. – sepp2k
Ceci est très proche du travail, mais Dir.glob() retourne les répertoires ET les fichiers, et je ne veux que des répertoires. J'ai trouvé que Dir.glob ("*"). Delete_if {| entrée | entrée.include? "."}. max_by {| f | File.mtime (f)} fonctionne pour cela, mais il suppose qu'aucun de vos répertoires ne contient de points ... – Dasmowenator