也许这是一个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 ......
感谢。
答案 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 */
}