"我有一个表示文件URL的NSString:
file://localhost/Users/UserName/Documents/filename.txt
我希望转换为:
/Users/UserName/Documents/filename.txt
Cocoa中有没有方法可以做到这一点?
如果没有,从字符串的开头删除file://localhost/
是否安全?
这个简单的答案似乎是删除" file:// localhost"字符串开头的字符。这可以使用stringByReplacingOccurrencesOfString来创建一个新字符串,或者你可以使用NSMutableString来保存字符串,这是我目前的解决方案。所以代码如下:
NSMutableString* myFileURLString;
NSRange* myRange;
myFileURLString = [[self getFileURLString] mutableCopy];
myRange.localtion = 0;
myRange.length = [@"file://localhost" length];
[myFileURLString deleteCharcaters:myRange];
这样做对我来说更好,因为我希望在标准格式中添加字符串并以其他方式编辑字符串。
答案 0 :(得分:2)
将文件网址转换为NSURL
(如果您尚未完成此操作):
NSString *urlString = @"file://localhost/Users/UserName/Documents/filename.txt";
NSURL *url = [NSURL URLWithString:urlString];
然后简单地提取路径组件:
NSString *path = [url path];
NSLog(@"%@", path);
// Output: /Users/UserName/Documents/filename.txt
答案 1 :(得分:1)
NSURL* url = [NSURL URLWithString:@"file://localhost/Users/UserName/Documents/filename.txt"];
NSLog(@"path %@",[url path]);
答案 2 :(得分:-2)
是NSString吗?如果是这样,你可以试试这个 - (NSString *)stringByReplacingOccurrencesOfString:(NSString *)target withString:(NSString *)替换
示例:
myUrlString = [myUrlString stringByReplacingOccurrencesOfString:@"file://localhost"
withString:@""];
答案 3 :(得分:-4)
这个简单的答案似乎是删除" file:// localhost"字符串开头的字符。这可以使用stringByReplacingOccurrencesOfString来创建一个新字符串,或者你可以使用NSMutableString来保存字符串,这是我目前的解决方案。所以代码如下:
NSMutableString* myFileURLString;
NSRange* myRange;
myFileURLString = [[self getFileURLString] mutableCopy];
myRange.localtion = 0;
myRange.length = [@""file://localhost" length];
[myFileURLString deleteCharcaters:myRange];