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

i have an issue on the file System on the actual device

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

(Error Domain=NSCocoaErrorDomain Code=257 "The file “IMG_0926.JPG” couldn’t be opened because you don’t have permission to view it." UserInfo={NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG, NSUnderlyingError=0x15649630 {Error Domain=NSPOSIXErrorDomain Code=1 "Operation not permitted"}})

我的代码是:

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)
        }
    }

如果有人能帮助我请

谢谢大家

听起来您正在尝试打开位于此处的文件:NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG

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

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

iOS11.

请检查 plist 中照片库的权限选项

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

清理 TEMP 目录中的数据。