我正在尝试将文档目录中的文件复制到文档目录中的目录,但是我收到错误 无法复制到“文档”,因为已经具有相同名称的项目存在。
任何帮助都将不胜感激。
这是我的代码:
let documentsPath = NSURL(fileURLWithPath: NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0])
let logsPath = documentsPath.URLByAppendingPathComponent("Logs")
let fileURL = documentsPath.URLByAppendingPathComponent("Database.db")
do {
try NSFileManager.defaultManager().copyItemAtURL(fileURL, toURL: logsPath)
} catch let error1 as NSError{
RZLog.Error ("Error: \(error1.localizedDescription)")
}
答案 0 :(得分:2)
有多种方法可以做到这一点。 最简单的方法是在复制之前删除目标文件:
try! NSFileManager.removeItemAtURL(dstURL)
您可能希望通过实施NSFileManagerDelegate
:
NSFileManager().delegate
设置为您的班级(您复制文件的位置)true
继续或false
中止。示例:
class AnyClass : NSFileManagerDelegate {
let fileManager = NSFileManager()
func fileManager(fileManager: NSFileManager, shouldProceedAfterError error: NSError, copyingItemAtURL srcURL: NSURL, toURL dstURL: NSURL) -> Bool {
if error.code == NSFileWriteFileExistsError {
try! fileManager.removeItemAtURL(dstURL)
copyFrom(srcURL, to: dstURL)
return true
} else {
return false
}
}
func copyFrom(a: NSURL, to b: NSURL) {
try! fileManager.copyItemAtURL(a, toURL: b)
}
func entryPoint() {
fileManager.delegate = self
copyFrom(sourceURL, to: destinationURL)
}
}