我收到了savePanel表格中的网址,我想做以下操作:
任何简单的方法都可以做到这一点..我尝试了类似下面的内容,但它不起作用
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];
答案 0 :(得分:7)
这可以使用NSString
的方法来实现。请注意,对于字符串比较,您必须使用isEqualToString:
,而不是==
,它们会测试指针的相等性。
关于扩展程序使用:-(NSString *)pathExtension;
。要删除扩展程序,请使用-(NSString *)stringByDeletingPathExtension;
。
在所有添加扩展程序的情况下,请使用例如+(NSString *)stringWithFormat:
撰写新字符串。
所以:
NSString *finalString;
if([[tmp pathExtension] isEqualToString:@"xxx"]) {
finalString = [tmp stringByDeletingPathExtension];
}
finalString = [NSString stringWithFormat:@"%@.yyy", finalString];
答案 1 :(得分:1)
@ user756245在同一页面上提供的可行解决方案的替代方法,但使用了不同的NSString
方法:
NSString *finalString;
if([[tmp pathExtension] isEqualToString:@"xxx"]) {
finalString = [tmp stringByDeletingPathExtension];
}
finalString = [finalString stringByAppendingPathExtension:@"yyy"];
答案 2 :(得分:0)
这是使用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"