如何更改NSURL文件名

时间:2010-09-12 21:35:52

标签: objective-c cocoa

也许这是一个noob问题,我有一个来自savePanel的NSURL,我想用这样的标识符名称保存文件。如何更改NSURL上的文件名?

这是我的保存方法:

    for (int i=0; i<[rectCropArray count]; i++) {

   //the code goes on..

   CGImageDestinationRef dest = CGImageDestinationCreateWithURL(url, outputType, 1, nil);
   if (dest == nil) {
    NSLog(@"create CGImageDestinationRef failed");
    return NO;
   }

   CGImageDestinationAddImage(dest, imageSave, (CFDictionaryRef)dictOpts);

   //the code goes on..
  }

我真正想做的是,每个循环都使用i添加url文件名,因此该方法可以在每个循环中保存不同的文件。 例如:SavedFile1.jpg,SavedFile2.jpg ......

感谢。

1 个答案:

答案 0 :(得分:8)

NSURL有一个initWithString:relativeToURL:方法,您应该可以使用它。如果您使用URL的父目录,文件名和扩展名,则应该能够使用URLWithString:relativeToURL:轻松地创建新URL。

NSURL* saveDialogURL = /* fill in the blank */;
NSURL* parentDirectory = [saveDialogURL URLByDeletingLastPathComponent];
NSString* fileNameWithExtension = saveDialogURL.lastPathComponent;
NSString* fileName = [fileNameWithExtension stringByDeletingPathExtension];
NSString* extension = fileNameWithExtension.pathExtension;

for (int i = 0; i < /* fill in the blank */; i++)
{
    NSString* newFileName = [NSString stringWithFormat:@"%@-%i.%@", fileName, i, extension];
    NSURL* newURL = [NSURL URLWithString:newFileName relativeToURL:parentDirectory];
    /* do stuff with newURL */
}