在Cocoa中创建一个文件夹(包)

时间:2012-04-14 23:43:10

标签: objective-c cocoa directory nsfilemanager bundles

我正在尝试以编程方式使用Cocoa创建一个文件夹。

我写了一个NSString类别,我们在那里有以下功能:

- (void)createAsFolder
{
    NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError* err = nil;

    [fileManager createDirectoryAtPath:self withIntermediateDirectories:YES attributes:nil error:&err];

    if (err)
    {
        NSLog(@"ERROR : %@",err);
    }
}

所以,简而言之,假设我们有一个NSString* path = @"/some/path/is/here";,我们可以通过以下方式创建它:

[path createAsFolder];

问题是,虽然它对于普通文件夹完全有效,但是当指定的路径是一个包(即:带有扩展名)时它不会。例如

NSString* path = @"/this/is/a/path/to/some/bundle.bun";

[path createAsFolder];

以上不起作用。

关于如何解决这个问题的任何想法?

2 个答案:

答案 0 :(得分:3)

好的,这是答案(感谢@thundersteele),如果你想将一个完整的文件树从一个地方复制到另一个:

NSFileWrapper* w = [[NSFileWrapper alloc] initWithPath:initialPath];

[w writeToFile:destinationPath atomically:YES updateFilenames:YES];

是的:无论子包是包还是其他什么,它都绝对没问题。不是那么难,是吧?只有2行...大声笑

答案 1 :(得分:2)