diff --git a/KSPathUtilities.h b/KSPathUtilities.h index 868d45e..fbb33ab 100644 --- a/KSPathUtilities.h +++ b/KSPathUtilities.h @@ -29,6 +29,9 @@ @interface NSString (KSPathUtilities) +// like -stringByAppendingString: but inserts the suffix string in front of path extension if there is one. e.g. [@"foo.png" ks_stringWithPathSuffix:@"-2"] = @"foo-2.png" +- (NSString *)ks_stringWithPathSuffix:(NSString *)aString; + // Will preserve any trailing slashes that are part of self - (NSString *)ks_pathRelativeToDirectory:(NSString *)otherPath; diff --git a/KSPathUtilities.m b/KSPathUtilities.m index 523dc00..12d1370 100644 --- a/KSPathUtilities.m +++ b/KSPathUtilities.m @@ -29,6 +29,22 @@ @implementation NSString (KSPathUtilities) +- (NSString *)ks_stringWithPathSuffix:(NSString *)aString; +{ + NSString *result = self; + + NSString *extension = [self pathExtension]; + if ([extension length]) + { + result = [[[self + stringByDeletingPathExtension] + stringByAppendingString:aString] + stringByAppendingPathExtension:extension]; + } + + return result; +} + - (NSString *)ks_pathRelativeToDirectory:(NSString *)dirPath { // Our internal workings currently expect dirPath to have a trailing slash, so let's supply that for them