提问者:小点点

我在实际设备上的文件系统上有一个问题


我的问题是,当我试图将照片库中的图像复制到文件系统中时,会出现错误,错误是

(Error Domain=NSCCOAErrorDomain Code=257“无法打开文件IMG_0926.jpg,因为您没有查看该文件的权限。”UserInfo=NSFilePath=/var/mobile/media/dcim/100Apple/IMG_0926.jpg,NSUnderlyingError=0x15649630 Error Domain=NSPOSIXErrorDomain Code=1“不允许操作})

我的代码是:

let fileManager = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
    let document = fileManager[0]
    var i = 0
    for asset in arrayOfAssets {
        let filePath = document.appendingPathComponent("image\(arrayOfAssets.count + i).png")
        i += 1
        PHImageManager.default().requestImageData(for: asset, options: nil) { (data, nil, _ , info) in
            let url = info?["PHImageFileURLKey"] as! NSURL
            do {
                  try FileManager.default.copyItem(at: url as URL, to: filePath)

            }catch {
                print(error)
            }

           // print(filePath)
        }
    }

如果有人能帮我的话,请帮忙

谢谢大家


共2个答案

匿名用户

听起来您正在尝试打开位于以下位置的文件:

默认情况下,不允许访问此目录,出于安全考虑,您只能访问文档目录中的文件。

我在您的代码中找不到此URL的来源,但根据NSError,您试图访问文件系统允许区域之外的图像。

匿名用户

请勾选iOS 11中照片库plist中的权限选项。

此外,您还可以将数据保存在临时目录中,并在需要时和使用后提取它

清除临时目录中的数据。