如何将本地URL路径转换为本地文件路径?

时间:2014-03-20 20:02:14

标签: ios macos path nsstring nsurl

"我有一个表示文件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];

这样做对我来说更好,因为我希望在标准格式中添加字符串并以其他方式编辑字符串。

4 个答案:

答案 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];