ios - NSFileManager.defaultManager().fileExistsAtPath 在使用 iOS 设备时返回 false

标签 ios swift mpmovieplayercontroller nsfilemanager

我一直在尝试使用 MPMoviePlayerViewController 播放视频并且效果很好。但在我播放之前,我想检查我想播放的视频是否真的存在,所以我使用 NSFileManager.defaultManager().fileExistsAtPath,以及 iPhone 相机中文件的路径滚动

我的问题出现在检查它是否存在时。如果我用这段代码检查它:

// videoImageUri = "/Users/AppName/Library/Developer/CoreSimulator/Devices/3DAC8D46-3E32-4143-A552-2DB325CB5965/data/Media/DCIM/100APPLE/IMG_0006.mov"
NSFileManager.defaultManager().fileExistsAtPath(NSURL(fileURLWithPath : videoImageUri).path!)

Xcode 模拟器中使用时返回 true,但在 iPhone 中使用时返回 false,即使文件存在。我知道它存在是因为 MPMoviePlayerViewController 可以正确播放它。

我在使用iPhone时使用的路径是

/var/mobile/Media/DCIM/100APPLE/IMG_0150.MP4

也许,读取相机胶卷有权限限制吗?

最佳答案

应用程序只允许访问它们自己的目录。对其他部分的访问被拒绝,因此自然所有对文件的查询都会说它们不存在。

媒体播放等内部组件也可以访问其他目录,否则您将无法在所有应用程序内部播放相机胶卷中的项目。

似乎模拟器根本不强制执行权限。

More information about filesystem on iOS.

关于ios - NSFileManager.defaultManager().fileExistsAtPath 在使用 iOS 设备时返回 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36572571/

相关文章:

ios - Storyboard Segues 的命名约定

ios - 如何制作支持 ActivityViewController 的应用程序?

ios - 从 Firebase 和 Swift 3 中检索字典数组

ios - 是否可以在 Objective-C 中使用 Metal 数据类型?

swift - 在 Xcode 8 (Swift 3) 中将 Swift 数组转换为 CFArray

iphone - MPMoviePlayerController 慢速前进和后退运动

ios - subview UIButton 单击事件在 ViewController swift 4 中不起作用

macos - 读取 RTF 文件并解析明文

ios - setCurrentPlaybackTime 的奇怪行为

iphone - 继续在后台播放 MPMoviePlayerController 中的电影