我正在尝试以编程方式创建一个带有可可的文件夹。
我写了一个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];
以上是行不通的。
关于如何解决这个问题的任何想法?
好的,这是答案(感谢@thundersteele),如果你想将一个完整的文件树从 on 复制到另一个:
NSFileWrapper* w = [[NSFileWrapper alloc] initWithPath:initialPath];
[w writeToFile:destinationPath atomically:YES updateFilenames:YES];
是的:无论子文件夹是包/捆绑包还是其他什么,它绝对没有问题。没那么难吧?只有2行...哈哈
请尝试NSFileWrapper
。我认为它可以做你想做的事情。
https://developer.apple.com/library/mac/#documentation/Cocoa/Reference/ApplicationKit/Classes/NSFileWrapper_Class/Reference/Reference.html