There is an easier way (well, than messing with subarrays); take a look at NSPathUtilities.h.
- (NSString *)lastPathComponent; - (NSString *)stringByDeletingLastPathComponent; - (NSString *)stringByAppendingPathComponent:(NSString *)str; - (NSString *)pathExtension; - (NSString *)stringByDeletingPathExtension; - (NSString *)stringByAppendingPathExtension:(NSString *)str; - (NSArray *)stringsByAppendingPaths:(NSArray *)paths;
Using the example "/a/b/c/hello.txt":
NSString *path = @"/a/b/c/hello.txt"; NSString *fileName = [path lastPathComponent]; // 'hello.txt' NSString *basePath = [path stringByDeletingLastPathComponent]; // '/a/b/c' NSString *newPath = [basePath stringByAppendingPathComponent:@"goodbye.txt"]; // '/a/b/c/goodbye.txt'
And so on...
NSGod source share