我使用Swift 1.2工作得很好,因为我使用filePath作为字符串。现在,Swift 2希望我们所有人都使用URL路径,即使我正在阅读他们的文档,我仍然无法使用它。
我有;
var fileName = "myRespondusCSV.csv"
let fileManager = NSFileManager.defaultManager()
let documentsURL = fileManager.URLsForDirectory(NSSearchPathDirectory.DocumentDirectory, inDomains: NSSearchPathDomainMask.UserDomainMask)
if let documentPath: NSURL = documentsURL.first as NSURL! {
filePath = documentPath.URLByAppendingPathComponent(fileName)
print(filePath)
} else {
fileManager.createFileAtPath(filePath!.path!,
contents: ("" as String).dataUsingEncoding(NSUTF8StringEncoding)!,
attributes:nil)
print("file has been created")
}
}
func excludeFileFromBackup() {
var error:NSError?
//var fileToExcludeh = NSURL.fileReferenceURL(filePath!)
var fileToExcludeh = fileURLWithPath(filePath)
let success = fileToExcludeh.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey, error: &error)
}
我正在使用未解析的标识符' fileURLWithPath'!
我应该使用绝对网址路径吗?
答案 0 :(得分:13)
如果有人需要,可以使用Swift 4:
var resourceValues = URLResourceValues()
resourceValues.isExcludedFromBackup = true
try? fileUrl.setResourceValues(resourceValues)
答案 1 :(得分:7)
这应该有效
do {
try filePath.setResourceValue(true, forKey: NSURLIsExcludedFromBackupKey)
} catch _{
print("Failed")
}
答案 2 :(得分:3)
这适用于Swift 3。
网址必须为$_POST
。
var
答案 3 :(得分:1)
以下是 Swift 3
的解决方案func addSkipBackupAttributeToItemAtURL(URL:NSURL) -> Bool {
var success: Bool
do {
try URL.setResourceValue(true, forKey:URLResourceKey.isExcludedFromBackupKey)
success = true
} catch let error as NSError {
success = false
print("Error excluding \(URL.lastPathComponent!) from backup \(error)");
}
return success
}
答案 4 :(得分:0)
在swift 5中为我运行的代码是...
var file: URL = <# your URL file #>
do {
var res = URLResourceValues()
res.isExcludedFromBackup = true
try file.setResourceValues(res)
} catch {
print(error)
}
您当然可以将其放在函数或扩展中。