NSFileManager.defaultManager().fileExistsAtPath returns 使用 iOS 设备时为 false

NSFileManager.defaultManager().fileExistsAtPath returns false when using iOS device

我一直在尝试使用 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 模拟器中使用时 returns 为真,但如果与 iPhone 一起使用,则 returns 为假,即使文件存在。我知道它存在,因为 MPMoviePlayerViewController 播放正确。

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

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

可能吧,读取相册有没有权限限制?

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

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

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

More information about filesystem on iOS.