Với đường dẫn của một thư mục, làm thế nào tôi có thể trả lại đường dẫn của tệp mới nhất trong thư mục đó?Emacs lisp: Làm thế nào tôi có thể lấy tập tin mới nhất trong một thư mục?
5
A
Trả lời
0
Sử dụng 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
Sử dụng API built-in có thể đạt được cũng như:
(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"
Nếu bạn cũng cần tập tin theo thư mục, sử dụng directory-files-recursively
hơn directory-files
. Nếu bạn muốn loại trừ các thư mục, trước tiên hãy lọc danh sách tệp/thư mục bằng cách sử dụng file-directory-p
.
Các vấn đề liên quan
- 1. Powershell Get-ChildItem tập tin mới nhất trong thư mục
- 2. Làm thế nào để có được các tập tin mới nhất X từ một thư mục trong PHP?
- 3. Làm thế nào để có được một NSArray tên tập tin của tất cả các tập tin trong một thư mục nhất định trong ứng dụng của tôi?
- 4. Trong emacs lisp làm thế nào tôi có thể nối thêm một chuỗi vào một tập tin mà tôi không muốn mở?
- 5. emacs - làm thế nào để tìm kiếm tập tin trong thư mục con
- 6. Làm thế nào để trả về một tập hợp các tập tin từ một thư mục nhất định trong Elixir?
- 7. tạo một thư mục mới và một tập tin văn bản bên trong thư mục đó
- 8. Lấy tên tệp mới nhất trong một thư mục trong Ansible
- 9. Lấy tên tập tin từ thư mục trong Android
- 10. Sao chép tập tin vào một thư mục mới
- 11. Tôi có thể thay đổi lịch sử tìm tập tin của Emacs không?
- 12. Làm thế nào tôi có thể có grep không in ra 'Không có tập tin hoặc thư mục' lỗi?
- 13. Trong lực lượng làm thế nào tôi có thể xóa các tập tin từ một thư mục trong không gian làm việc của tôi, nơi các tập tin không phải là một phần của không gian làm việc?
- 14. Cách tạo thư mục mới và tập tin trong Vim
- 15. PHP: Làm thế nào tôi có thể lấy một tệp từ một thư mục mà không cần quét toàn bộ thư mục?
- 16. Lấy danh sách các tập tin trong một thư mục với một glob
- 17. Tôi làm cách nào để đóng cửa trong Emacs Lisp?
- 18. Lấy kích thước của thư mục hoặc tập tin
- 19. Tải tập tin vào thư mục làm việc của tôi
- 20. Có thể tạo liên kết tượng trưng đến tệp mới nhất trong một thư mục không?
- 21. Common Lisp: tạo một thư mục
- 22. Làm thế nào tôi có thể đọc một 0xFF trong một tập tin với libC++ istream_iterator?
- 23. Lấy phiên bản mới nhất của tập tin từ TFS
- 24. Lấy tập tin mới nhất Ngày cam kết từ SVN
- 25. clojure làm thế nào để biết đường dẫn của một thư mục/tập tin/thư mục trong một dự án?
- 26. Android Làm thế nào để kiểm tra số lượng tập tin trong một thư mục
- 27. Làm thế nào tôi có thể chuyển đổi một chuỗi thành số nguyên trong lisp chung?
- 28. Tìm thư mục trang web của Emacs
- 29. Làm thế nào để "URL giải mã" một chuỗi trong Emacs Lisp?
- 30. Làm thế nào tôi có thể lấy đường dẫn đến thư mục% APPDATA% bằng Python?
lưu ý rằng thuật toán này yêu cầu truy cập đĩa 'N * log (N) *, trong đó' N' là số tệp trong thư mục. – sds
@sds Tôi đã cập nhật câu trả lời của mình bằng cách sử dụng 'thư mục-tệp' trực tiếp thay vì tự sắp xếp. – xuchunyang
'file-newer-than-file-p' truy cập đĩa hai lần. – sds