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

时间:2016-09-27 08:43:15

标签: ios swift3 file-manager phasset

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

  

(错误域名= NSCocoaErrorDomain代码= 257“文件”IMG_0926.JPG“   因为你没有权限查看它而无法打开。“   的UserInfo = {NSFilePath =的/ var /移动/媒体/ DCIM / 100APPLE / IMG_0926.JPG,   NSUnderlyingError = 0x15649630 {错误域= NSPOSIXErrorDomain代码= 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 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

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

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

清理TEMP目录中的数据。