我正在使用以下代码检索位于文档目录中的PDF文件的文件大小。
- (NSString *)sizeOfFile:(NSString *)filePath {
NSDictionary *fileAttributes = [[NSFileManager defaultManager] attributesOfItemAtPath:filePath error:nil];
NSInteger fileSize = [[fileAttributes objectForKey:NSFileSize] integerValue];
NSString *fileSizeString = [NSByteCountFormatter stringFromByteCount:fileSize countStyle:NSByteCountFormatterCountStyleFile];
return fileSizeString;
}
NSURL *url = [self.arrayOfBooks objectAtIndex:indexPath.row];
NSLog(@"%@",[self sizeOfFile:url.absoluteString]); // Showing zero KB.
我确信arrayBooks
中有文件,因为它可以显示在cellForRowAtIndexPath
中。
但我不知道为什么文件大小显示为零。
请帮帮我。
答案 0 :(得分:1)
导致问题的最可能原因是由于发送到sizeOfFile:
的路径无效。
您的代码:
NSURL *url = [self.arrayOfBooks objectAtIndex:indexPath.row];
NSLog(@"%@",[self sizeOfFile:url.absoluteString]); // Showing zero KB.
应该是:
NSURL *url = [self.arrayOfBooks objectAtIndex:indexPath.row];
NSLog(@"%@",[self sizeOfFile:[url path]]);
您想调用path
方法来获取文件路径。 absoluteString
返回文件网址,而不是路径。
另外,不要使用属性语法来调用方法。