在运行时,我的应用会下载一些大型视频文件并播放它们。它们很大,所以我认为它们可能会在系统试图恢复记忆的任何时候被擦除。
我无法使用[fileManager fileExistsAtPath: pathOfVideo]
:
然后我发现answer说我们不使用-fileExistsAtPath
来确定文件是否存在。
建议的解决方案是打开该文件,看看它是否在打开时失败。即使是30MB的文件?我不是很担心这里的种族状况;文件从服务器下载并在MediaPlayer中播放。我是否仍应打开30MB文件以查看它是否存在而不是使用fileExistsAtPath?
答案 0 :(得分:1)
可能会帮助你
NSDictionary *fileAttributes = [fileManager fileAttributesAtPath:filePath traverseLink:YES];
if(fileAttributes != nil)
{
NSString *fileSize = [fileAttributes objectForKey:NSFileSize];
enter code here
NSLog(@"File size: %@ kb", fileSize);
}
答案 1 :(得分:1)
如果竞争条件不是问题,请使用fileExistsAtPath。 iOS设备上的权限问题是什么?
答案 2 :(得分:0)
如果您按照链接讨论为什么建议不要使用fileExistsAtPath
(请参阅Race Conditions and Secure File Operations),考虑到iPhone应用程序的沙盒,这可能是可接受的风险。