如何计算emacs中大.zip
个文件的md5校验和?我想做点什么:
(secure-hash 'md5 (insert-file-contents "~/blah/blah.zip"))
然后拿出我的128位哈希值。我不确定使用什么函数来访问大文件(比如说400 MB)而不需要将文件读入缓冲区。
更新:我想我会添加一个快速的解决方法功能,因为从答案看来secure-hash
对大文件不起作用。我下载了fciv.exe for windows,将其添加到exec-path并使用emacs中的这个功能。
(defun checksum (FILE &optional exe)
(let* ((default "fciv")
(EXE (if (and exe (executable-find exe)) exe default) )
(call (concat EXE " " FILE) ) )
(if (executable-find EXE)
(progn
(if (and exe (not (equal exe default) ) )
(message (concat "'" exe "' not found, using " default) ) )
(call-process-shell-command call nil t nil) )
(progn
(message "Hashing program not found in exec-path")
nil) ) ) )
答案 0 :(得分:0)
Emacs仅对字符串或缓冲区中的数据进行操作。因此,要么将整个文件放入缓冲区(如代码中),要么使用call-process
之类的外部工具。