Я пытаюсь реализовать команду cp -r, чтобы при вводе пользователя в cp -r dir dir1 dir копировался и вставлялся в dir1. Ниже приведено то, что у меня есть, и он копирует файлы и каталоги внутри каталога, но сам каталог не копирует. Например, когда есть файл1 и каталог ‘a’inside dir, он будет копировать и вставлять только файлы1 и’ a ‘внутри dir1, но не сам каталог dir.
Какие-либо предложения?
Вы запускаете свой алгоритм на один шаг слишком глубоко в каталог, который копируете: dir_entry = readdir(dir)
читает все записи внутри Ваш исходный каталог и, следовательно, сам исходный каталог не копируется.
Функция в порядке, вам просто нужно сделать еще один шаг, прежде чем вызывать ее.
Вместо звонка dirCopy("a", "b")
вам нужно начать с выполнения
mkdir("b/a", convertMode("a"));
а потом
dirCopy("a", "b/a");
Таким образом, вам понадобится код, который извлекает последнюю часть имени файла из вашего path
так что вы можете добавить его к newPath
, Если вам нужна помощь для этого, вы можете посмотреть на этот вопрос: Получить имя файла из пути
Других решений пока нет …