【发布时间】:2019-12-28 14:07:55
【问题描述】:
我正在尝试将一个文件从一个 URL 移动到另一个,但是我收到代码 513 的错误。我知道这是NSFileWriteNoPermissionError。考虑到我首先创建了文件夹,我看不出这怎么可能。
//self.video!.folderURL.path = /var/mobile/Containers/Data/Application/066BDB03-FD47-48D8-B6F8-932AFB174DF7/Documents/AV/769c504203024bae95b47d78d8fe9029
try? fileManager.createDirectory(atPath: self.video!.folderURL.path, withIntermediateDirectories: true, attributes: nil)
// Update permission for AV folder
do {
let parentDirectoryPath = self.video!.folderURL.deletingLastPathComponent().path
let result = try fileManager.setAttributes([FileAttributeKey.posixPermissions: 0o777], ofItemAtPath: parentDirectoryPath)
print(result)
} catch {
print("Error = \(error)")
}
// sourceURL = file:///private/var/mobile/Containers/Data/PluginKitPlugin/50D8B8DB-19D3-4DD6-93DD-55F37CF87EA7/tmp/trim.6D37DFD2-5F27-4AB9-B478-5FED8AA6ABD7.MOV
// self.url = file:///var/mobile/Containers/Data/Application/066BDB03-FD47-48D8-B6F8-932AFB174DF7/Documents/AV/0b0b6803e891780850152eeab450a2ae.mov
do {
try fileManager.moveItem(at: sourceURL, to: self.url)
} catch {
QLogTools.logError("Error moving video clip file \(error)")
}
错误
Error Domain=NSCocoaErrorDomain Code=513 ""trim.90A10B33-B884-419F-BAD9-65583531C3C3.MOV" 无法移动,因为您没有访问“AV”的权限。" UserInfo={NSSourceFilePathErrorKey=/private/var/mobile/Containers/Data/PluginKitPlugin/0849234B-837C-43ED-BEDD-DE4F79E7CE96/tmp/trim.90A10B33-B884-419F-BAD9-65583531C3C3.MOV, NSUserStringVariant=( 移动
我尝试将我最初创建的文件夹的权限更改为 0o777,但是当我打印出它的属性时,它返回 511 作为其权限。
P.S:这只发生在 iOS 13 上。
【问题讨论】:
-
你怎么知道你有权访问源 URL?
-
@ElTomato 我已经用错误更新了问题。
-
我遇到了同样的问题。你解决了吗?
-
作为临时解决方法,我使用
copy方法而不是move,它可以工作。 -
我遇到了这个问题,没有任何帮助。还有其他解决方案吗?
标签: ios swift xcode nsfilemanager ios13