0

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

我在使用时遇到了麻烦[fileManager fileExistsAtPath: pathOfVideo]

然后我找到了一个答案,说我们不应该-fileExistsAtPath来确定文件是否存在。

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

4

3 回答 3

1

可能这会帮助你

NSDictionary *fileAttributes = [fileManager fileAttributesAtPath:filePath traverseLink:YES];
    if(fileAttributes != nil)
    {
        NSString *fileSize = [fileAttributes objectForKey:NSFileSize];
    enter code here

        NSLog(@"File size: %@ kb", fileSize);
    }
于 2012-05-24T11:06:22.223 回答
1

如果不考虑竞争条件,请使用 fileExistsAtPath。iOS 设备上的权限问题是什么?

于 2012-05-24T13:28:39.903 回答
0

如果您点击讨论为什么不建议使用的链接fileExistsAtPath(请参阅竞争条件和安全文件操作),考虑到 iPhone 应用程序的沙盒,这可能是一个可以接受的风险。

于 2012-05-24T12:30:03.447 回答