如何在iOS中检测大文件的存在?

时间:2012-05-24 11:03:23

标签: ios nsfilemanager

在运行时,我的应用会下载一些大型视频文件并播放它们。它们很大,所以我认为它们可能会在系统试图恢复记忆的任何时候被擦除。

我无法使用[fileManager fileExistsAtPath: pathOfVideo]

然后我发现answer说我们使用-fileExistsAtPath来确定文件是否存在。

建议的解决方案是打开该文件,看看它是否在打开时失败。即使是30MB的文件?我不是很担心这里的种族状况;文件从服务器下载并在MediaPlayer中播放。我是否仍应打开30MB文件以查看它是否存在而不是使用fileExistsAtPath?

3 个答案:

答案 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应用程序的沙盒,这可能是可接受的风险。