ios - iOS/Swift 4:如何在不删除现有目标的文件和文件夹的情况下复制包含多个文件夹的文件夹?
问题描述
我想复制一个包含多个文件夹的文件夹,而这个文件夹包含多个文件。如果此文件夹存在,我想将它们保留在里面,如果存在则覆盖文件。如果文件不存在,它们只是自然地添加。
_ = try FileManager.default.replaceItemAt(previousItemUrl, withItemAt: currentItemUrl)
例如:
设备上存在的文件:
APP/XXX/a.txt
APP/XXX/b.txt
APP/XXX/c.txt
APP/YYY/d.txt
APP/ZZZ/e.txt
APP/ZZZ/f.txt
要复制的文件:
APP/XXX/c.txt //Will override
APP/YYY/g.txt //new file added
APP/ZZZ/h.txt //new file added
APP/AAA //new folder added
我是否必须为自己创建一个递归函数,或者该函数本身是否已经存在?
提前致谢。
解决方案
我们可以使用下面的原生方法。它将源复制到目标。
func copyItem(atPath srcPath: String,
toPath dstPath: String) throws
我们还可以通过实现下面提到的其他委托方法来控制覆盖用例。
optional func fileManager(_ fileManager: FileManager,
shouldCopyItemAt srcURL: URL,
to dstURL: URL) -> Bool
您可以在Apple 文档中找到所有这些详细信息
推荐阅读
- wordpress - Wordpress 的新 Gutenberg 中的自定义模板页面
- javascript - 电报机器人(telegraf.js 库)将消息从一个通道方法转发到另一个通道方法?
- c# - 什么Android是蓝屏?
- reactjs - React Hooks 如何使用Callback“冻结”闭包?
- apache-spark - Spark Streaming、Structured Streaming 和 Kafka Streaming 是一回事吗?
- bash - 我可以使用 cut 来设置变量吗?
- google-cloud-platform - 为什么在列出 BQ 作业时使用 VM 实例中的服务帐户
- windows - 在 Windows 中设置特定于进程的权限
- reactjs - 有没有加速 React src 代码编译的工具?
- java - HTTP POST 中缺少授权标头