【发布时间】:2017-04-15 00:31:30
【问题描述】:
我正在尝试实现 cp -r 命令,以便当用户键入 cp -r dir dir1 时,dir 会被复制并粘贴到 dir1 中。以下是我到目前为止所拥有的,它确实复制了目录中的文件和目录,但它不会复制目录本身。例如,当 dir 中有一个 file1 和一个目录 'a' 时,它只会在 dir1 中复制和粘贴 file1 和 'a',而不是目录 dir 本身。 有什么建议吗?
【问题讨论】:
我正在尝试实现 cp -r 命令,以便当用户键入 cp -r dir dir1 时,dir 会被复制并粘贴到 dir1 中。以下是我到目前为止所拥有的,它确实复制了目录中的文件和目录,但它不会复制目录本身。例如,当 dir 中有一个 file1 和一个目录 'a' 时,它只会在 dir1 中复制和粘贴 file1 和 'a',而不是目录 dir 本身。 有什么建议吗?
【问题讨论】:
你开始你的算法太深入你正在复制的目录:dir_entry = readdir(dir) 读取所有条目inside你的源目录,因此源目录本身不会被复制。
这个函数很好,你只需要在调用它之前多做一步。
您需要先执行而不是调用dirCopy("a", "b")
mkdir("b/a", convertMode("a"));
然后
dirCopy("a", "b/a");
因此,您将需要从path 中提取最后一个文件名部分的代码,以便您可以将其附加到newPath。如果您需要帮助,可以查看以下问题:Get a file name from a path
【讨论】: