Convert NSURL to local file path

Objective CXcodeMacos

Objective C Problem Overview


I have an NSURL that looks like this:

file://localhost/Users/myuser/myfile.txt

Is there a standard function to convert it to a local file path looking like this:

/Users/myuser/myfile.txt

Objective C Solutions


Solution 1 - Objective C

Use the -[NSURL path] method:

NSLog(@"%@", myUrl.path);

From the documentation:

> The path of the URL, unescaped with the stringByReplacingPercentEscapesUsingEncoding: method. If the receiver does not conform to RFC 1808, returns nil. > > If this URL object contains a file URL (as determined with isFileURL), the return value of this method is suitable for input into methods of NSFileManager or NSPathUtilities. If the path has a trailing slash it is stripped. > > Per RFC 3986, the leading slash after the authority (host name and port) portion is treated as part of the path.

Note that you can create such a URL with +[NSURL fileURLWithPath:].

Solution 2 - Objective C

Swift 4:

absoluteURL.path 

or

yourUrl.path

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionsashoalmView Question on Stackoverflow
Solution 1 - Objective Cuser142019View Answer on Stackoverflow
Solution 2 - Objective CNaishtaView Answer on Stackoverflow