Objective c NSURL文件扩展名添加等
我已从savePanel工作表收到一个URL,我想执行以下操作: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;
- 检查它是否有扩展名
- 如果有,请将其移除
- 添加自定义扩展名
- 如果没有,则添加自定义扩展名
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"