Скопировать папку в непустую директорию

Можно ли скопировать папку в непустое место назначения без предварительного удаления содержимого папки назначения? Моя текущая реализация выглядит следующим образом

var folderObject = NSFileManager.defaultManager();
folderObject.removeItemAtPath_error(toPath, nil);
folderObject.copyItemAtPath_toPath_error(fromPath, toPath, nil));

Чего мне нужно добиться, так это перезаписать содержимое папки назначения на исходную папку.

1 ответ

Вызов removeItemAtPath_error удаляет каталог назначения и copyItemAtPath_toPath_error создает каталог с тем же именем, что и удаленный, следовательно, он пуст.

Как примечание, наименование вашего NSFileManager Экземпляр несколько вводит в заблуждение, поскольку это не объект папки, а ссылка на экземпляр файлового менеджера.

Пример того, как это можно сделать (я не знаком с PyObjCтак что это только для вдохновения)

# Define paths
var sourcePath = "/my/source/path/"
var targetPath = "/my/target/path/"

# Create reference to file manager
var fileManager = NSFileManager.defaultManager();

# Create array of all file and directory paths inside the source directory
var sourcePaths = fileManager.contentsOfDirectoryAtPath_sourcePath_error(sourcePath, nil); 

# For each source file or directory
for sourcePath in sourcePaths:

  # Copy the file or directory to the target path
  fileManager.copyItemAtPath_toPath_error(sourcePath, targetPath, nil);

Я предполагаю, что это рекурсивно копирует каталоги из источника и поддерживает дерево каталогов.

Другие вопросы по тегам