来自文档目录的PDF文件大小在iOS中显示为零

时间:2014-05-30 14:42:22

标签: ios nsurl nsfilemanager

我正在使用以下代码检索位于文档目录中的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中。

但我不知道为什么文件大小显示为零。

请帮帮我。

1 个答案:

答案 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返回文件网址,而不是路径。

另外,不要使用属性语法来调用方法。