从文件路径中以编程方式获取文件名和扩展名,使用Cocoa?

21

我知道你可以使用NSBundle:

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

如何使用 NSBundle 编程获取文件的文件路径、文件名和扩展名。

例如,我可能有这样一个路径:/Users/theuser/Documents/yourdocument.txt

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

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

非常感谢您的帮助!

4个回答

45

有一些在NSString中实现的方法可以达到此目的。请查看定义在NSPathUtilities.h中的-[NSString pathExtension]-[NSString lastPathComponent]


29

要获取没有扩展名的文件名,请尝试使用[NSString stringByDeletingPathExtension];


0

你试试这个,对我有用。

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

-3

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

Str = [NSString stringWithFormat:@"%@",[openPanel URL]];

  [txtBeowsFilePath setStringValue:Str];

  Browesfilename=[Str lastPathComponent];

1
将本地变量命名以大写字母开头是不良实践。你应该将它们命名为'filePath'和'extension'而不是'FilePath'和'Extension'。 - Oliver Cooper
1
这个答案是错误的,lastPathComponent将会给你整个文件名,因为它是斜杠后面的最后一个组成部分(如果是一个文件)。 - NikkyD
这是糟糕的编码。不要以大写字母开头命名你的变量。在赋值语句之间使用适当的空格。你还在不同的情况下拼写变量,任意地使用驼峰式大小写。永远不要这样做。这就是简直糟透了。 - Alex Zavatone

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接