NSURLをローカルファイルパスに変換する


112

次のようなNSURLがあります。

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

次のようなローカルファイルパスに変換する標準関数はありますか。

/Users/myuser/myfile.txt

回答:


222

次の-[NSURL path]方法を使用します。

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

ドキュメントから:

stringByReplacingPercentEscapesUsingEncoding:メソッドでエスケープされていないURLのパス。受信者がRFC 1808に準拠していない場合は、を返しますnil

このURLオブジェクトにファイルURLが含まれている場合(で決定isFileURL)、このメソッドの戻り値はNSFileManagerまたはNSPathUtilitiesのメソッドへの入力に適しています。パスの末尾にスラッシュがある場合、パスは削除されます。

RFC 3986によれば、権限(ホスト名とポート)部分の後の先行スラッシュはパスの一部として扱われます。

このようなURLはで作成できることに注意してください+[NSURL fileURLWithPath:]


8
URLをどこから取得するかによって、[myURL isFileURL]true かどうかを確認する必要があります。
Matt Connolly 2013年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.