代码之家  ›  专栏  ›  技术社区  ›  Raoul Supercopter

在Mac OS X中获取本地化文件大小

  •  1
  • Raoul Supercopter  · 技术社区  · 14 年前

    (unsigned long long) 变量。有没有一个标准的方法将它转换成一个字符串,使用本地化的单位?

    我知道这些解决方案:

    NSString * stringFromFileSize( FileSize theSize )
    {
        float floatSize = theSize;
        if (theSize<1023)
            return ([NSString stringWithFormat:@"%i bytes",theSize]);
        floatSize = floatSize / 1024;
        if (floatSize<1023)
            return ([NSString stringWithFormat:@"%1.1f KB",floatSize]);
        floatSize = floatSize / 1024;
        if (floatSize<1023)
            return ([NSString stringWithFormat:@"%1.1f MB",floatSize]);
        floatSize = floatSize / 1024;
    
        return([NSString stringWithFormat:@"%1.1f GB",floatSize]);
    }
    

    CFLocalGetValue ,查看了我所知道的所有格式化方法,但没有任何成功,那么是否有任何隐藏的方法/函数可以帮助我?我可以设法用手做一些东西,但我宁愿避免它。

    2 回复  |  直到 14 年前
        1
  •  3
  •   mipadi    14 年前

    听起来像是一份 NSLocalizedString . 您可以添加一个条目到您的法语本地化(在本地化.strings):

    "bytes" = "octets";
    "KB" = "Ko";
    "MB" = "Mo";
    "GB" = "Go";
    

    然后使用:

    return [NSString stringWithFormat:@"%i %@", theSize, NSLocalizedString(@"bytes", nil)];
    

    更具体地回答这个问题,我不知道有什么Cocoa函数可以处理这些转换。

        2
  •  1
  •   julia_v    8 年前

    对于任何面临同样问题的人来说:有一个 NSByteCountFormatter 类,它提供本地化。好像问这个问题的时候它不在身边。它从OSX10.8MountainLion开始工作。