man*_*ukv 6 nsfilemanager swift ios13 xcode11
在iOS 13设备中,FileManager尝试获取文件大小时返回权限错误。
do {
let attr = try FileManager.default.attributesOfItem(atPath: my_file_path) //--> Getting nil
fileSize = attr[FileAttributeKey.size] as! UInt64
} catch {
print("Error: \(error)")
}
Run Code Online (Sandbox Code Playgroud)
返回错误:
“错误域= NSCocoaErrorDomain代码= 257”由于您无权查看文件“ trim.1A9FFC19-EE2C-438A-BF3D-97E05A97EF9E.MOV”,因此无法打开。UserInfo = {NSFilePath = / private / var / mobile / Containers / Data / PluginKitPlugin / ADB8684E-12B5-451D-A20F-158B899BB3DD / tmp / trim.1A9FFC19-EE2C-438A-BF3D-97E05A97EF9E.MOV,NSUnderlylyErrorError = 0x280 = NSPOSIXErrorDomain代码= 1“不允许操作”}}
仅在我更新到iOS 13之后才观察到该问题。在早期版本中,一切正常。
小智 4
iOS 13 SDK 将照片应用程序视为另一个应用程序,因此当我们关闭图像选择器控制器时,视频 url 将无效。
之前,当我尝试将视频上传到 AWS 时,我遇到了问题,我所做的只是创建一个临时文件夹并复制现有的视频 url 路径,然后关闭图像选择器。然后上传,它起作用了。
func createDirectory(videoURL:URL){
let Directorypath = getDirectoryPath()
var objcBool:ObjCBool = true
let isExist = FileManager.default.fileExists(atPath:Directorypath,isDirectory: &objcBool)
// If the folder with the given path doesn't exist already, create it
if isExist == false{
do{
try FileManager.default.createDirectory(atPath: Directorypath, withIntermediateDirectories: true, attributes: nil)
}catch{
print("Something went wrong while creating a new folder")
}
}
let fileManager = FileManager()
do {
if fileManager.fileExists(atPath:Directorypath) {
try? fileManager.removeItem(at: URL(fileURLWithPath:Directorypath))
}
try fileManager.copyItem(at:videoURL.absoluteURL, to: URL(fileURLWithPath:Directorypath))
self.imagePicker.dismiss(animated: true, completion:nil)
}catch let error {
print(error.localizedDescription)
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
525 次 |
| 最近记录: |