代码之家  ›  专栏  ›  技术社区  ›  Abhinav

在nsurl中使用getResourceValue:Forkey方法时出错

  •  0
  • Abhinav  · 技术社区  · 14 年前

    我试图通过传递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"
    

    请协助。

    2 回复  |  直到 10 年前
        1
  •  1
  •   Grant Paul    14 年前

    如果要获取本地文件的文件大小,请参见 NSFileManager

    例如,要获取文件的大小: int size = [[[NSFileManager defaultManager] attributesOfItemAtPath:@"/Users/Abhinav/Test/abhi.pdf" error:NULL] fileSize]; 应该工作(并且将设置 size 0 如果文件不存在或不可读)。

        2
  •  5
  •   stifin    13 年前

    什么类型 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);