【问题标题】:Get filename and extension from filepath programmatically cocoa?以编程方式从文件路径获取文件名和扩展名可可?
【发布时间】:2011-11-05 14:07:19
【问题描述】:

我知道你可以使用 NSBundle:

 NSString *filePath = [[NSBundle mainBundle] pathForResource:@"foo" ofType:@"rtf"];

获取文件的文件路径,但是如何使用 NSBundle 以编程方式从文件路径中获取文件名和扩展名(单独)。

例如,我可能有:/Users/theuser/Documents/yourdocument.txt

很明显文件是'yourdocument',扩展名是'txt'

但我需要从文件路径中获取文件名和扩展名以用作 NSString。

非常感谢您的帮助!

【问题讨论】:

    标签: cocoa nsstring filenames filepath nsbundle


    【解决方案1】:

    试试这个,它对我有用。

    NSString *fileName = @"yourFileName.pdf";
    NSString *ext = [fileName pathExtension];
    

    【讨论】:

      【解决方案2】:

      希望对你有所帮助....

      Str = [NSString stringWithFormat:@"%@",[openPanel URL]];
      
        [txtBeowsFilePath setStringValue:Str];
      
        Browesfilename=[Str lastPathComponent];
      

      【讨论】:

      • 以大写字母开头命名局部变量是不好的做法。您应该将它们命名为“filePath”和“extension”,而不是“FilePath”和“Extension”。
      • 这个答案是错误的,lastPathComponent 会给你完整的文件名,因为它是斜杠之后的最后一个组件(如果它是一个文件)
      • 这是糟糕的编码。不要以大写字母开头变量。在赋值语句之间使用适当的间距。您每次都以不同的方式拼写变量,并且任意拼写。永远不要这样做。这简直太可怕了。
      【解决方案3】:

      要获取不带扩展名的文件名,请尝试[NSString stringByDeletingPathExtension];

      【讨论】:

        【解决方案4】:

        NSString 上有一些方法可以做到这一点。查看-[NSString pathExtension]-[NSString lastPathComponent],两者都在NSPathUtilities.h 中定义。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-06-03
          • 1970-01-01
          • 2014-06-06
          • 2011-12-08
          • 2022-06-23
          • 2016-01-09
          • 1970-01-01
          相关资源
          最近更新 更多