NSURL文件扩展名添加等

kha*_*ofi 8 objective-c nsurl nsstring

我收到了来自savePanel表的URL,我想做以下事情:

  • 检查它是否有扩展名
  • 如果是,请将其删除
  • 添加自定义扩展程序
  • 如果没有,则添加自定义扩展

任何简单的方法来做到这一点..我尝试了类似下面的东西,但它不起作用

if ( [tmp pathExtension] != @"xxx" )
   path = [tmp stringByAppendingFormat:@"xxx"];
Run Code Online (Sandbox Code Playgroud)

好的......可能的解决方案如下

NSString *path;
NSURL *filepath;
fileurl = [sheet URL];
fileurl = [fileurl URLByDeletingPathExtension];
fileurl = [fileurl URLByAppendingPathExtension:@"yyy"];
path = [fileurl path];
Run Code Online (Sandbox Code Playgroud)

小智 7

这可以使用NSString方法来实现.请注意,对于字符串比较,你必须使用isEqualToString:,不==,这对于指针相等测试.

关于扩展使用:-(NSString *)pathExtension;.要删除扩展名使用-(NSString *)stringByDeletingPathExtension;.

在所有情况下,要添加扩展名,请使用以下代码撰写新字符串:+(NSString *)stringWithFormat:.

所以:

NSString *finalString;
if([[tmp pathExtension] isEqualToString:@"xxx"]) {
    finalString = [tmp stringByDeletingPathExtension];
}
finalString = [NSString stringWithFormat:@"%@.yyy", finalString];
Run Code Online (Sandbox Code Playgroud)