Anonymous user
Make a backup file: Difference between revisions
→{{header|Common Lisp}}: filename versioning and some cleanup
(Some examples on this page assume that the original file already exists.) |
(→{{header|Common Lisp}}: filename versioning and some cleanup) |
||
Line 15:
=={{header|Common Lisp}}==
<lang lisp>(defun
(ignore-errors (apply #'parse-integer args)))
(defun get-next-version (basename)
(flet ((parse-version (pathname)
(string-left-trim (file-namestring basename)
(file-namestring pathname))
(let* ((files (directory (format nil "~A,*" (namestring basename))))
(max (reduce #'max files :key #'parse-version)))
(merge-pathnames (format nil "~a,~d" (file-namestring basename) (1+ max))
basename))))
(defun save-with-backup (filename data)
(let ((file (probe-file filename)))
(rename-file file (
(with-open-file (out file :direction :output)
▲ :direction :output
▲ :if-exists :supersede)
▲ (print data out)))))</lang>
=={{header|Java}}==
|