NSString でパス文字列を操作する : Objective-C プログラミング

PROGRAM


NSString でパス文字列を操作する

NSString には、ファイルのパスを表す文字列を操作するメソッドがいくつか用意されています。

これらを組み合わせて使用すれば、保存場所とファイル名からパス文字列を組み立てるといったようなことが簡単にできます。

パス文字列を要素ごとに分割する

例えば、あるフォルダーへのパス文字列を NSString 型の変数 path に格納しているとします。

このとき、次のようにして、そのパス文字列を構成する要素ごとに分離した文字列の配列を取得することができます。

NSArray* components = [path pathComponents];

このようにすることで、パス文字列が各階層ごとに分割されて、それぞれの名前が配列に分けて格納されます。

パスが絶対パスだった場合には、分割された要素の最初は "/" という文字列になるようでした。

パス文字列に別のパスを連結する

また、既存のパス文字列に、新しいパスを追加した文字列を取得したい場合には、次のようにします。

NSString* newPath = [path stringByAppendingPathComponent:@"system.log"];

このようにすることで、パス文字列 path が表す階層の次の要素として、引数で指定したパス文字列が連結された文字列を取得できます。

 

このとき、引数で指定するパス文字列は、"Logs/system.log" というように、複数階層のパス文字列を指定しても大丈夫です。

ただし、追加するパス文字列を "/Logs/system.log" のような絶対パス表記にしても、相対的なものとして後ろに追加されます。

配列からパス文字列を生成する

NSString には、パスの要素ごとの値で構成された配列からパス文字列を作成するメソッドも用意されています。

NSString* path = [NSString pathWithComponents:components];

このようにすることで、NSString 型のデータを持った NSArray 配列 components の内容を、ひとつのパス文字列として連結した文字列を取得することができます。

[ もどる ]