0

是否可以在不先删除目标文件夹的内容的情况下将文件夹复制到非空目标?我目前的实现如下

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

我需要实现的是用源文件夹的内容覆盖目标文件夹的内容。

4

1 回答 1

0

该调用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);

我假设这递归地从源复制目录并维护目录树。

于 2018-06-11T12:36:25.357 回答