2012-05-24 30 views
0

在运行时,我的应用程序下载一些大型视频文件并播放它们。它们很大,所以我想他们可能会随时通过系统尝试恢复内存来擦除。如何检测iOS中是否存在大文件?

我不得不使用[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); 
    } 
+0

可能是好的,但Xcode中说“fileAttributesAtPath:traverseLink:”已被弃用 –

+0

检查此http:// developer.apple.com/library/ios/#DOCUMENTATION/Cocoa/Reference/Foundation/Classes/NSFileManager_Class/Reference/Reference.html#//apple_ref/occ/instm/NSFileManager/attributesOfItemAtPath:error: – Amitg2k12

+1

尝试'attributesOfItemAtPath:error: ',正如文件所建议的那样。 – Rob

1

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

+0

〜/图书馆/应用程序支持/ iPhone模拟器/ 5.0是700,所以我将它改为755,以匹配其父母和孩子的其余部分。 –