Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c NSURL文件扩展名添加等_Objective C_Nsstring_Nsurl - Fatal编程技术网

Objective c NSURL文件扩展名添加等

Objective c NSURL文件扩展名添加等,objective-c,nsstring,nsurl,Objective C,Nsstring,Nsurl,我已从savePanel工作表收到一个URL,我想执行以下操作: 检查它是否有扩展名 如果有,请将其移除 添加自定义扩展名 如果没有,则添加自定义扩展名 任何简单的方法都可以做到这一点。。我尝试了类似以下的方法,但不起作用 if ( [tmp pathExtension] != @"xxx" ) path = [tmp stringByAppendingFormat:@"xxx"]; 好的。。。一个可能的解决方案如下 NSString *path; NSURL *filepath;

我已从savePanel工作表收到一个URL,我想执行以下操作:

  • 检查它是否有扩展名
  • 如果有,请将其移除
  • 添加自定义扩展名
  • 如果没有,则添加自定义扩展名
任何简单的方法都可以做到这一点。。我尝试了类似以下的方法,但不起作用

if ( [tmp pathExtension] != @"xxx" )
   path = [tmp stringByAppendingFormat:@"xxx"];
好的。。。一个可能的解决方案如下

NSString *path;
NSURL *filepath;
fileurl = [sheet URL];
fileurl = [fileurl URLByDeletingPathExtension];
fileurl = [fileurl URLByAppendingPathExtension:@"yyy"];
path = [fileurl path];

这可以使用
NSString
的方法实现。请注意,对于字符串比较,您必须使用
IsequalString:
,而不是
==
,这将测试指针是否相等

关于扩展使用:
-(NSString*)路径扩展。要删除扩展,请使用
-(NSString*)stringByDeletingPathExtension

在所有情况下,要添加扩展名,请使用例如:
+(NSString*)stringWithFormat:
组合一个新字符串

因此:


@user756245在同一页上给出的可行解决方案的替代方法,但使用不同的
NSString
方法:

NSString *finalString;
if([[tmp pathExtension] isEqualToString:@"xxx"]) {
    finalString = [tmp stringByDeletingPathExtension];
}

finalString = [finalString stringByAppendingPathExtension:@"yyy"];

以下是使用
URL

// assuming you are building an URL from string
let url = URL(string: "file.abc")!
let finalUrl = url.deletingPathExtension().appendingPathExtension("mp3")
let finalString = finalUrl.path // output "file.mp3"

朋友的另一个解决方案。。。。NSString*路径;NSURL*文件路径;fileurl=[sheet URL];fileurl=[fileurl URLByDeletingPathExtension];fileurl=[FileUrlUrlbyAppendingPathExtension:@“yyy”];路径=[fileurl路径];是的,文斯。。谢谢你的帮助。两种解决方案都很好地工作。
// assuming you are building an URL from string
let url = URL(string: "file.abc")!
let finalUrl = url.deletingPathExtension().appendingPathExtension("mp3")
let finalString = finalUrl.path // output "file.mp3"