我试图通过传递getResourceValue:forKey方法从NSURL对象获取文件大小属性。这是我写的代码:
NSURL *samplePath = [[NSURL alloc] initWithString:@"file://localhost/Users/Abhinav/Test/abhi.pdf"];
[samplePath getResourceValue:&name forKey:NSURLFileSizeKey error:&error];
NSLog(@"Error===%@",error);
NSLog(@"name===%@",name);
但是我收到了以下错误:
Error Domain=NSPOSIXErrorDomain Code=17 "The operation couldn’t be completed. File exists"
请协助。
答案 0 :(得分:5)
您的示例中的name
是什么类型的?您应该传递要存储大小的变量的地址:
NSURL *samplePath = [[NSURL alloc initWithString:@"file://localhost/Users/Abhinav/Test/abhi.pdf"];
NSNumber *fileSizeBytes;
[samplePath getResourceValue:&fileSizeBytes forKey:NSURLFileSizeKey error:&error];
NSLog(@"Error===%@",error); NSLog(@"size of file in bytes ===%@",fileSizeBytes);
答案 1 :(得分:1)
如果您尝试获取本地文件的文件大小,请参阅NSFileManager
例如,要获取文件的大小:int size = [[[NSFileManager defaultManager] attributesOfItemAtPath:@"/Users/Abhinav/Test/abhi.pdf" error:NULL] fileSize];
应该有效(并且如果文件不存在或者不可读,则会将size
设置为0
。< / p>