Копировать папку в непустую директорию - PullRequest
0 голосов
/ 11 июня 2018

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

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

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

1 Ответ

0 голосов
/ 11 июня 2018

Вызов 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);

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

...