Ios 实际设备上的文件系统有问题
我的问题是,当我试图将图像从照片库复制到文件系统时,我得到的错误是 (错误域=NSCocoaErrorDomain Code=257“文件”IMG_0926.JPG” 无法打开,因为您没有查看它的权限。“ UserInfo={NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG, NSUnderlyingError=0x15649630{Error Domain=NSPOSIXErrorDomain Code=1 “不允许操作”}}) 我的代码是:Ios 实际设备上的文件系统有问题,ios,swift3,file-manager,phasset,Ios,Swift3,File Manager,Phasset,我的问题是,当我试图将图像从照片库复制到文件系统时,我得到的错误是 (错误域=NSCocoaErrorDomain 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)
}
}
如果有人能帮我,请
谢谢大家听起来你好像在试图打开一个位于此处的文件:
NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG
默认情况下,不允许访问此目录,出于安全原因,您只能访问位于文档目录中的文件
我在您的代码中找不到此URL的来源,但根据N错误,您正在尝试访问文件系统允许区域之外的图像。听起来好像您正在尝试打开位于此处的文件:
NSFilePath=/var/mobile/Media/DCIM/100APPLE/IMG_0926.JPG
默认情况下,不允许访问此目录,出于安全原因,您只能访问位于文档目录中的文件
我在您的代码中找不到此URL的来源,但根据N错误,您试图访问文件系统允许区域以外的图像。请检查iOS 11中plist for Photos Library中的权限选项 您还可以将数据保存在临时目录中,并在需要时和使用后提取数据
清理临时目录中的数据。请检查iOS 11中plist for Photos Library中的权限选项 您还可以将数据保存在临时目录中,并在需要时和使用后提取数据
清理临时目录中的数据。从何处获取资产数组
arrayOfAssets
你能给我看一下这个数组数据填充代码吗?func collectionView(collectionView:UICollectionView,didSelectItemAt indexPath:indexPath){arrayOfAssets.append(phasset[indexPath.row])来自didSelectItemInCollectionView和阶段[indexPath.row]当我获取资产时,我从viewdidLoad获取它。您从何处获取资产数组arrayOfAssets
你能给我看一下这个数组数据填充代码吗?func collectionView(collectionView:UICollectionView,didSelectItemAt indexPath:indexPath){arrayOfAssets.append(phasset[indexPath.row])我从didSelectItemInCollectionView和[indexPath.row]获取资产时从viewdidLoad获得它