修改NSURL以保存同一文件的两个版本

时间:2014-01-06 04:36:33

标签: nsstring nsurl

我为Avid Media Composer视频编辑器编写了一个小实用程序,它解析编辑决策列表并为编辑生成两个单独的文本文件。我能保存第一个文件没问题。但我无法弄清楚如何修改我的URL以自动保存第二个文件。

假设第一个文件名为:FirstFile.txt

我只想将第二个自动保存为:FirstFile_SubCap.txt

我一直与NSURL& NSString以某种方式规则,错误很多。如果有人对如何做到这一点有一些指导,我将不胜感激。

到目前为止,这是我的代码。我已经删除了错误的代码,但评论了我想要完成的地方和内容。

NSSavePanel *saveFile = [NSSavePanel savePanel];
long result = [saveFile runModal];
if(result == NSOKButton){
    NSURL *selectedFile = [saveFile URL];
    NSString *writeFile = [_infoWINDOW string];
    [writeFile writeToURL:selectedFile atomically:YES encoding:NSUTF8StringEncoding error:nil];

    // If the following condition is met, save the second file...

    if ([_subCap isEqual: @"yes"]) {

        // Here's where I need to save the second file as selectedFile+"_SubCap.txt"
    }

提前致谢。

Chris Conlee

2 个答案:

答案 0 :(得分:0)

您必须将URL转换为路径字符串,通过将扩展名与完整路径分开来将其拆分,然后使用附加的_SubCap扩展名重新构建它。代码:

NSString *subCapString = .... // string to write to _SubCap.txt file
NSString *path = selectedFile.path;
NSString *extension = path.pathExtension;
NSString *strippedPath = [path stringByDeletingPathExtension];
NSString *newPath = [NSString stringWithFormat:@"%@_SubCap.%@", strippedPath, extension];
NSURL *subcapURL = [NSURL fileURLWithPath:newPath];
[subCapString writeToURL:subcapURL atomically:YES encoding:NSUTF8StringEncoding];

答案 1 :(得分:0)

以下是如何通过调整另一个的文件名来生成URL:

NSURL *selectedFile = [saveFile URL];

NSString *subCapString = [NSString stringWithFormat:
                          @"%@_SubCap.%@",
                          [selectedFile URLByDeletingPathExtension].absoluteString,
                          selectedFile.pathExtension];

NSURL *subCapURL = [NSURL URLWithString:subCapString];