请给我一些建议,帮忙创建一个自定义函数用于 dired-mode
中的文件复制和移动,使得如果目录不存在就可以创建。默认行为是如果目录不存在则生成错误信息。
难点: 我认为最大的难点是如何处理错误地尝试创建多个目录的情况。例如,假设我们想将文件从主目录~/
复制到/tmp/test/one/
-- 目录/tmp/test/
已经存在,但/tmp/test/one/
还不存在。在这种情况下,如果我错误地输入了/tmp/tesst/one
而不是/tmp/test/one/
,应该会出现错误提示,类似于嘿,你不能这样做,因为在创建/tmp/tesst/one
之前必须先存在/tmp/tesst/
。 当然,如果我在这个例子中正确地输入了/tmp/test/one
,事情就会顺利进行,因为在这个例子中/tmp/test/
已经存在。
最后,我假设我应该基于dired-do-create-files
创建一个新函数-- 修改以下代码段:
(if (not (or dired-one-file into-dir))
(error "Marked %s: target must be a directory: %s" operation target))
如果能够提供克服难关或其他可能存在的危险的任何指导,将不胜感激。
.../tesst/one
--您确定要继续吗?” 如果我已经正确输入了/tmp/test/one
,那么消息将会说:“……1个新目录--即,.../one
……” - lawlist+
(又名dired-create-directory
)。因此,我修改后的大纲现在包括在(if (not (or dired-one-file into-dir)) (error "Marked %s: target must be a directory: %s" operation target))
部分修改dired-do-create-files
并插入修改后的dired-create-directory
版本。任何有关如何计算 和 显示dired-create-directory
将要创建的新目录数量的想法都将不胜感激 - 例如,“我们是否继续创建2个新目录.../tesst/one
- y / n?” - lawlistdired-create-directory
或make-directory
中的代码。请参见这些函数中的while
循环。换句话说,您希望通过执行类似于此类代码来收集目录列表,然后提示用户确认并显示该列表。 - Drew