2

我正在尝试使用 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];

以上不起作用。

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

4

2 回答 2

3

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

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

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

是的:无论子文件夹是包/捆绑包还是其他任何东西,都绝对没有问题。没那么难吧?就两行。。。哈哈

于 2012-04-15T00:19:12.850 回答
2

试试NSFileWrapper吧。我认为它可以做你想做的事情。

https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSFileWrapper_Class/Reference/Reference.html

于 2012-04-15T00:09:11.837 回答