Dato il percorso di una directory, come posso restituire il percorso del file più recente in quella directory?Emacs lisp: come posso ottenere il file più nuovo in una directory?
5
A
risposta
0
Utilizzando f:
(defun aj-fetch-latest (path)
(let ((e (f-entries path)))
(car (sort e (lambda (a b)
(not (time-less-p (aj-mtime a)
(aj-mtime b))))))))
(defun aj-mtime (f) (let ((attrs (file-attributes f))) (nth 5 attrs)))
6
Utilizzando le API built-in può raggiungere così:
(defun latest-file (path)
"Get latest file (including directory) in PATH."
(car (directory-files path 'full nil #'file-newer-than-file-p)))
(latest-file "~/.emacs.d") ;; => "/Users/xcy/.emacs.d/var"
Se si ha bisogno anche i file in sotto-directory, utilizzare directory-files-recursively
piuttosto che directory-files
. Se si desidera escludere le directory, filtrare innanzitutto l'elenco di file/directory utilizzando file-directory-p
.
Problemi correlati
- 1. Come ottenere il file più nuovo in una directory in php
- 2. Come posso ottenere una sottostringa di una stringa in Emacs Lisp?
- 3. Come posso verificare se un file esiste usando Emacs Lisp?
- 4. Come ottenere il testo selezionato in Emacs Lisp?
- 5. Importazione di file nel file di configurazione Emacs Lisp/Emacs nella stessa directory
- 6. Come fare riferimento al file attualmente caricato in Emacs Lisp?
- 7. PPRINT in Emacs Lisp?
- 8. Come posso ottenere rapidamente emacs per aprire un nuovo buffer?
- 9. Come individuare l'errore in un file Lisp in Emacs?
- 10. avvolgere una funzione in emacs lisp
- 11. Schema dialetto di Lisp in Emacs
- 12. Sovrascrittura di una funzione in Emacs Lisp
- 13. quale shell-command in emacs lisp?
- 14. Come aggiungere più elementi a un elenco in Emacs lisp
- 15. lisp su emacs: come commentare un'espressione su più righe?
- 16. Come posso ottenere più colori in emacs vc-diff?
- 17. In Emacs Lisp, come trovare dove è definito il simbolo
- 18. Inizializzazione di Emacs come file org: come posso ottenere la versione corretta di org-mode?
- 19. Script di Bash per scp il più nuovo file in una directory su un server remoto
- 20. Come salvare Emacs in più posizioni?
- 21. Evidenziazione sintassi Emacs Lisp
- 22. Come copiare negli appunti in Emacs Lisp
- 23. Come posso accedere al percorso della directory corrente in un file di variabili di directory emacs?
- 24. Common Lisp: creazione di una directory
- 25. Come dividere il codice Lisp in più file sorgente?
- 26. Come creare una funzione temporanea in Emacs Lisp
- 27. emacs lisp, come ottenere la modalità buffer buffer?
- 28. Ottenere il conteggio dei file in una directory
- 29. Come "decodificare l'URL" una stringa in Emacs Lisp?
- 30. Come aggiungo le date in Emacs usando Emacs Lisp?
nota che questo algoritmo richiede l'accesso al disco 'N * log (N) *, dove' N' è il numero di file nella directory. – sds
@sds Ho aggiornato la mia risposta usando 'directory-files' direttamente invece di ordinare me stesso. – xuchunyang
'file-newer-than-file-p' accede al disco due volte. – sds